ajax的get请求和表单的get请求,头部字段是不是一样的?
这个问题太开放了:可以一样,也可以不一样,全在开发者。
为什么说不知道呢?因为 HTTP 的规格没有说,所以,只能看如何实现了。
可以试着问这样的问题:
用 chrome 浏览器发送 get 请求,和用 IE 发送 get 请求时,此两者的请求头一样吗?
答案是不一样。为什么?因为浏览器的实现方式不一样,他们的 User-Agent 值不一样。
用 ajax 发送 get 请求,直接在浏览器输入网址,用 form 发送 get 请求,此三者的请求头一样吗?
我们使用相同的浏览器,所以 User-Agent 是一样的。
但是如果是用了 jQuery 框架,则不一样,jQuery 会增加 Origin、X-Requested-With:XMLHttpRequest 头。
X-Requested-With:XMLHttpRequest 是 jQuery 框架增加的
if ( !s.crossDomain && !headers["X-Requested-With"] ) {
headers["X-Requested-With"] = "XMLHttpRequest";
}
至于 Origin 这个应该是通过 XMLHttpRequest 发送请求时,由浏览器增加的。为的是防止跨域。
刚才我又测试了一下,使用 chrome 浏览器发送 ajax 请求,有 Origin 头。使用 firefox 则没有。说明 Origin 是 chrome 的 XMLHttpRequest 对象发送的。
综上所述,可以一样,也可以不一样,全在开发者。
开发者包括
浏览器开发者
浏览器组件开发者,例如 XMLHttpRequest 对象
类库开发者
网站开发者
你可以自己在应用中使用 js 添加请求头。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。