POST请求用于向服务器发送应该被保存的数据,因此POST请求天然比GET请求多需要一份需要被保存的数据。那么这些数据应该放在何处呢?毕竟,我们的open()方法接收的三个参数都没有合适的位置。
答案是需要发送的数据会作为send()方法的参数最终被发往服务器,该数据可以是任意大小,任意类型。
使用Ajax发送POST请求需要使用setRequestHeader()方法设置请求头,代码如下:
function PostRequest(){
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else{
xhr = new ActiveXObject("Microsoft.XMLHttp");
}
xhr.open(‘post,’/ajax_demo’,true);
xhr.setRequestHeader(‘Content-Type’,"application/x-www-form-urlencoded’);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
var data = xhr.responseText;
}
}
xhr.send(‘username=itxdl;password=123456’);
}
总结:
● 创建XHR对象 var xhr = new XMLHttpRequest()或var xhr = new ActiveXObject ("Microsoft.XMLHttp")。
● 建立HTTP连接 xhr.open(‘GET’,URL,ASYNC)。
● 设置请求头 xhr.setRequestHeader(‘Content-Type’,’application/x-www-form-urlencoded’)。
● 给XHR状态绑定一个回调函数 xhr.onreadystatechange = function(){}。
● 在回调函数中判断Ajax的状态是否等于4,HTTP状态码是否等于200,然后编写相应的业务逻辑。
● 发送一个HTTP请求 xhr.send(data);
原文地址:https://www.cnblogs.com/itxdl/p/10971388.html