JavaScript---ajax为什么要设置requestHeader

最近这一阵子由于写项目好久没写博客了, 现在我又回来了~

ajax为什么要设置requestHeader

理由

默认情况下, 服务器对POST请求和提交web表单的请求并不会一视同仁. 因此, 服务器端必须有程序来读取发送过来的原始数据, 并从中解析出有用的部分. 不过我们可以使用xhr来模仿表单提交: 首先将Content-Type头部信息设置为application/x-www-form-urlencoded, 也就是表单提交时的内容类型, 其次是以适合的格式创建一个字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//例
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数据
}

如果不设置会怎么样

1
2
3
4
5
6
7
8
a.php
//不设置
$HTTP_PAW_POST_DATA
//去获取数据
//设置
$POST
//去获取数据
越来越多的平台(微信公众平台,新浪微博,简书,百度打赏等)支持打赏功能,付费阅读时代越来越近,特此增加了打赏功能,支持微信打赏和支付宝打赏。坚持原创技术分享,您的支持将鼓励我继续创作!