IT兄弟连 JavaWeb教程 使用AJAX发送POST请求并获取响应

  • 2019 年 10 月 5 日
  • 筆記

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/ITXDL123/article/details/90815782

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);