向服务器发送请求如需将请求发送到服务器,
我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:
method:请求的类型;GET 或 POST
url:文件在服务器上的位置
async:true(异步)或 false(同步)
send(string)
string:仅用于 POST 请求
GET请求
一个简单的get请求:
<html>
<head><script type="text/javascript">function loadXMLDoc(){ var xmlhttp;if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }xmlhttp.open("GET","/ajax/demo_get.asp",true);xmlhttp.send();}</script></head><body>
<h2>AJAX</h2>
<button type="button" οnclick="loadXMLDoc()">请求数据</button><div id="myDiv"></div>
</body>
</html>在上面的例子中,您可能得到的是缓存的结果。
为了避免这种情况,请向 URL 添加一个唯一的 ID:
<html>
<head><script type="text/javascript">function loadXMLDoc(){ var xmlhttp;if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }xmlhttp.open("GET","/ajax/demo_get.asp?t=" + Math.random(),true);xmlhttp.send();}</script></head><body><h2>AJAX</h2>
<button type="button" οnclick="loadXMLDoc()">请求数据</button><div id="myDiv"></div></body>
</html>POST 请求
一个简单 POST 请求:
<html>
<head><script type="text/javascript">function loadXMLDoc(){ var xmlhttp;if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }xmlhttp.open("POST","/ajax/demo_post.asp",true);xmlhttp.send();}</script></head><body><h2>AJAX</h2>
<button type="button" οnclick="loadXMLDoc()">请求数据</button><div id="myDiv"></div></body></html>如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定希望发送的数据:
<html>
<head><script type="text/javascript">function loadXMLDoc(){ var xmlhttp;if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }xmlhttp.open("POST","/ajax/demo_post2.asp",true);xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttp.send("fname=Bill&lname=Gates");}</script></head><body><h2>AJAX</h2>
<button type="button" οnclick="loadXMLDoc()">请求数据</button><div id="myDiv"></div></body></html>