[AJAX系列]XMLHttpRequest请求

时间:2024-01-19 16:34:32
 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>修改内容</title>
<!--
所有现代浏览器均支持XMLHttpRequest对象(IE6 IE5使用ActiveXObject)
XMLHttpRequest用于在后台与服务器交换数据,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新
创建XMLHttpRequest对象
IE7+ FireFox chrome Opera Safari
xmlhttp = new XMLHttpRequest();
IE5 IE6
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); -->
<script>
function loadXMLDoc() {
var xmlhttp;
if (window.XMLHttpRequest) {
//code for IE7+ FireFox chrome Opera Safari
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
/**
* 当使用async=true时,请规定在想赢处于onreadystatechange事件中的就绪状态时执行的函数
* 如果async=false时就不必使用onreadystatechange函数,将代码放到send()语句之后即可
* xmlhttp.open("GET","ajax_info.txt",false);
*xmlhttp.send();
*document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
* */
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
}
}
//open(method,url,async):
//method :规定请求的类型 GET或POST
//url : 文件在服务器上的位置
//async:true为异步 false为同步
xmlhttp.open("GET", "../ajax_info.txt", true);
//send(string)将请求发送到服务器 带有string参数的仅用于POST请求
/**
* 与POST想比GET更简单也更快,并且在大部分情况下都能使用
* 然而在以下情况下请使用POST请求:
* 无法使用缓存文件(更新服务器上的文件或数据库)
* 向服务器发送大量数据(POST没有数据量限制)
* 发送包含未知字符的用户输入时POST比GET更稳定也更可靠
* 使用POST请求时如果需要HTML表单那样POST数据,请使用setRequestHeader()来添加HTTP头然后在send()方法中规定希望发送的数据
* xmlhttp.open("POST","ajax_test.html",true);
*xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
*xmlhttp.send("fname=Henry&lname=Ford");
* sendRequestHeader(header,value) header:规定头的名称 value:规定头的值
*
* */ xmlhttp.send(); }
</script>
</head>
<body>
<div id="myDiv">
<h2>使用Ajax修改该文本的内容</h2>
</div>
<button type="button" onclick="loadXMLDoc()">修改内容</button>
</body>
</html>