php设置ajax头部,ajax中的setRequestHeader设置请求头

阅读: 评论:0

php设置ajax头部,ajax中的setRequestHeader设置请求头

php设置ajax头部,ajax中的setRequestHeader设置请求头

1、问题引发点:

前不久发现一个问题: 前端并没有设置请求头信息里面的但是在请求头中可以明显的看到Accept-Encoding:gzip, deflate, sdch,并且我尝试修改这个请求头,发现 不 生 效;

2、XMLHttpRequest对象提供了一个设置请求头的方法:setRequestHeader,对应的jQuery可以再beforeSend回调里面设置请求头:

$.ajax({

type: "GET",

url: "test.php",

success: function(data) {

console.log(data);

},

beforeSend: function(xhr) {

xhr.setRequestHeader("User-Agent", "headertest");

}

});

3、后来看W3C标准文档发现,这个请求头不是什么都可以设置的,标准里面明确规定了以下请求头信息是浏览器控制,开发者不允许设置这些请求头

Terminate these steps if header is a case-insensitive match for one of the following headers:

Accept-Charset

Accept-Encoding

Access-Control-Request-Headers

Access-Control-Request-Method

Connection

Content-Length

Cookie

Cookie2

Date

DNT

Expect

Host

Keep-Alive

Origin

Referer

TE

Trailer

Transfer-Encoding

Upgrade

User-Agent

Via

… or if the start of header is a case-insensitive match for Proxy- or Sec- (including when header is just Proxy- or Sec-).

The above headers are controlled by the user agent to let it control those aspects of transport. This guarantees data integrity to some extent. Header names starting with Sec- are not allowed to be set to allow new headers to be minted that are guaranteed not to come from

4、例子:

testAE.html

test

$.ajax({

type: "GET",

url: "./testAE.php",

success: function(data) {

$("body").append(data);

},

beforeSend: function(xhr) {

xhr.setRequestHeader("Accept-Encoding", "testAE");

}

});

testAE.php

/*回传ACCEPT_ENCODING*/

echo $_SERVER['HTTP_ACCEPT_ENCODING'];

?>

chrome:

ie:

控制台:

可以看到jQuery也会提示你这样设置是不安全的。

在mozila官方论坛里面也有相应的讨论:Ajax setRequestHeader;

本文发布于:2024-02-01 22:06:30,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170679638939722.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:头部   php   ajax   setRequestHeader
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23