1.例子
参考:https://blog.csdn.net/owen_william/article/details/51337973
2.FormData 和 Payload
使用XMLHttpRequest时,直接在send 函数中写字符串,和 使用formData是不同的
function send(userid,name,node,href,asyn) {
var xmlhttp=new XMLHttpRequest();
var url=url_ban;
直接send字符串或者json串,F12 中会显示请求格式为Payload
//var content=JSON.stringify({"people":userid,"ck":ck});
//var content="people="+userid+"&ck="+ck
//xmlhttp.send(content);
//使用FormData
var fd = new FormData();
fd.append("people",userid);
fd.append("ck",ck);
xmlhttp.open("POST",url,asyn); //第三个参数是同步异步,主线程只能异步
xmlHttp.withCredentials = true; // 默认不携带cookie,要把withCredentials 设为true,才会带cookie
//xhr.setRequestHeader("Content-Type", "application/json");
xmlhttp.send(fd);
}
3.请求是异步时,可以加回调函数
函数中,可以查看请求当前的状态,比如这样:
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200 ) {
unban(userid,name,node,asyn);
}
};
这个函数在每次状态改变是都被会调用。
状态的说明:1
状态 | 名称 | 描述 |
---|---|---|
0 | Uninitialized | 初始化状态。XMLHttpRequest 对象已创建或已被 abort() 方法重置。 |
1 | Open | open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。 |
2 | Sent | Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。 |
3 | Receiving | 所有响应头部都已经接收到。响应体开始接收但未完成。 |
4 | Loaded | HTTP 响应已经完全接收。 |
参考:(这两篇都不太好,将就看吧)
https://blog.csdn.net/u010216786/article/details/53168079
https://www.cnblogs.com/darkterror/p/6555594.html
http://www.w3school.com.cn/xmldom/dom_http.asp ↩︎