创建XMLHTTPRequest对象
XMLHttpRequest(XHR)对象用于与服务器交互。通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL,获取数据。这允许网页在不影响用户操作的情况下,更新页面的局部内容。XMLHttpRequest 在 AJAX 编程中被大量使用
这里创建了一个函数,用来区分兼容IE和其他浏览器,然后创建XMLHTTPRequest对象
function createXmlHttpRequest() {
if(window.ActiveXObject){ //window.ActiveXObject用来判断浏览器是否支持ActiveX控件,主要是IE
return new ActiveXObject("Microsoft.XMLHTTP"); //用来创建XMLHTTPRequest对象
}else if(window.XMLHttpRequest){ //非IE浏览器
return new XMLHttpRequest(); //创建XMLHTTPRequest对象
}
}
调用这个函数,现在我们的xmlHttp 就是XMLHTTPRequest对象
var xmlHttp = createXmlHttpRequest()
他的回调函数
xmlHttp.onreadystatechange = ajaxResponse; //当 readyState 属性发生变化时,调用的 event handler
//回调函数
function ajaxResponse(){
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){ //判断是否请求成功,readyState 代表请求的状态码,status代表请求的响应状态
return xmlHttp.responseText; //responseText包含对请求的响应,请求的数据就在这里,如果请求未成功或尚未发送,则返回 null
}
}
调用,我这里是用的post
xmlHttp.open('post', '你的url', false) //初始化一个请求。请求方式,URL,是否允许异步
var body= {'你的请求体'}
xmlHttp.send(JSON.stringify(body))//发送请求,参数是请求体
如果是formdata的请求方式的话
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); //设置请求头
var body= 'limit=100000&filter=["=","type",3]&outFields=["code","name"]';
xmlHttp.send(body)