面试题:HTTP跨域请求时为何发送options请求

81 阅读1分钟

跨域请求

  • 浏览器同源策略:浏览器的安全机制,不允许该网页请求第三方域名的资源,一般是获取服务端的数据。
  • 同源策略一般限制Ajax网络请求,不能跨域请求server
  • 不会限制<link> <img> <script> <iframe> 加载第三方资源

JSONP

a网页通过script去跨域请求b的接口,b接口直接返回一个字符串给a,字符串中带了一些数据内容,a拿到字符串后当作js去执行,然后就可以调用一些函数拿到数据。

image.png

CORS

服务端: image.png

多余的options请求

如果在跨域前,会发一些method为options的请求,返回的response有很重要的东西,展示可以支持的方法(get post delete 等)

image.png

答案:

  • options请求,是跨域请求之前的预检查
  • 浏览器自行发起的,无需我们干预
  • 不会影响实际的功能