为什么用ajax发送post请求时,需要设置请求头类型为application/x-www-form-urlencoded
看过以后不是很理解,难道是服务器有现成的处理表单数据的方法,而如果是一般的post数据,需要我们在服务器上自己写处理的方法?所以才伪装成表单提交?
求解答,谢谢! 展开
发送post请求的方法如下面所示:
var XMLHttpReq;
//创建XMLHttpRequest对象
function createXMLHttpRequest() {if(window.XMLHttpRequest) { //Mozilla 浏览
XMLHttpReq = new XMLHttpRequest();}
else if (window.ActiveXObject) { // IE浏览器
try {XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {try {XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
//发送请求函
function sendRequest(url,para) {
createXMLHttpRequest();
XMLHttpReq.open("POST", url,true);
XMLHttpReq.onreadystatechange = processResponse;//指定响应函数
XMLHttpReq.setRequestHeader("Content-Type", "application/x-www-form-
urlencoded");
XMLHttpReq.send(para); // 发送请求
}
// 处理返回信息函数
function processResponse() {
if (XMLHttpReq.readyState == 4) { // 判断对象状态
if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
var res=XMLHttpReq.responseText;
window.alert(res);
} else { //页面不正常
window.alert("您所请求的页面有异常。");
注意:用ajax发送post需要设置请求头类型为application/x-www-form-urlencoded。