最近这一阵子由于写项目好久没写博客了, 现在我又回来了~
ajax为什么要设置requestHeader
理由
默认情况下, 服务器对POST请求和提交web表单的请求并不会一视同仁. 因此, 服务器端必须有程序来读取发送过来的原始数据, 并从中解析出有用的部分. 不过我们可以使用xhr来模仿表单提交: 首先将Content-Type
头部信息设置为application/x-www-form-urlencoded
, 也就是表单提交时的内容类型, 其次是以适合的格式创建一个字符串
//例
function subData(params) {
let xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if ((xhr.status >= 200) && (xhr.status <= 300) || xhr.status == 304) {
alert('ok');
} else {
alert('error');
}
}
}
xhr.open("POST", "a.php", true);//true异步 false同步
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
let form = document.getElementsByTagName('form')[0];
xhr.send(new FormData(form));//XMLHttpRequest 2级规范 格式化form数据
}
如果不设置会怎么样
a.php
//不设置
$HTTP_PAW_POST_DATA
//去获取数据
//设置
$POST
//去获取数据
网友评论