ajax中options请求的理解

摘要:这个概念听着有点耳生,嗯是我自己这么说的。我们可以把浏览器自主发起的行为称之为“浏览器级行为”。之所以说options是一种浏览器级行为,是因为在某些情况下,普通的get或者post请求回首先自动发起一次options请求

浏览器行为:

这个概念听着有点耳生,嗯是我自己这么说的。。。我们可以把浏览器自主发起的行为称之为“浏览器级行为”。之所以说options是一种浏览器级行为,是因为在某些情况下,普通的get或者post请求回首先自动发起一次options请求,当options请求成功返回后,真正的ajax请求才会再次发起。


再来看下这个“某些情况下”都是什么情况?

  • 1、跨域请求,非跨域请求不会出现options请求 

  • 2、自定义请求头 

  • 3、请求头中的content-type是application/x-www-form-urlencoded,multipart/form-data,text/plain之外的格式

当满足条件12或者13的时候,简单的ajax请求就会出现options请求,有没有感觉到一点 同源策略 的意思,个人理解这个就是浏览器底层对于同源策略的一个具体实现。首先得到服务器端的确认,才能继续下一步的操作,这也是为什么options请求也被叫做**“预检”**请求的原因吧。


options具有的特性:

  1. 没有请求体
  2. 成功的响应有响应体
  3. 安全
  4. 密等性,不变性,同一个接口请求多少次都一样
  5. 不能缓存
  6. 不能在表单里使用


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_6064