开发者社区> 问答> 正文

ajax的get请求和表单的get请求,头部字段是不是一样的?

ajax的get请求和表单的get请求,头部字段是不是一样的?

展开
收起
a123456678 2016-07-29 10:41:56 1993 0
1 条回答
写回答
取消 提交回答
  • 这个问题太开放了:可以一样,也可以不一样,全在开发者。

    为什么说不知道呢?因为 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 添加请求头。

    2019-07-17 20:01:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载