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

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

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
//去获取数据

你可能感兴趣的:(JavaScript---ajax为什么要设置requestHeader)