美文网首页
axios或者ajax请求跨域导致的options预发送请求

axios或者ajax请求跨域导致的options预发送请求

作者: Morgan7 | 来源:发表于2019-12-11 16:09 被阅读0次

    原因

    • 原因是浏览器对简单跨域请求和复杂跨域请求的处理区别

    为什么出现OPTIONS请求

    • 多数情况我们自定义了请求头 服务器和浏览器之间的请求头方式不一致导致会出现options预检请求preflighted request询问服务器对跨域请求的支持情况

    • “需预检的请求”要求必须首先使用 OPTIONS 方法发起一个预检请求到服务器,以获知服务器是否允许该实际请求。"预检请求“的使用,可以避免跨域请求对服务器的用户数据产生未预期的影响。

    • 当请求满足下述任一条件时,即应首先发送预检请求:

    • 使用了下面任一 HTTP 方法:

    • 人为设置了对 CORS 安全的首部字段集合之外的其他首部字段。该集合为:

    • Content-Type 的值不属于下列之一:

      • application/x-www-form-urlencoded
      • multipart/form-data
      • text/plain
    • 请求中的XMLHttpRequestUpload 对象注册了任意多个事件监听器。

    • 请求中使用了ReadableStream对象。

    参考 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS

    相关文章

      网友评论

          本文标题:axios或者ajax请求跨域导致的options预发送请求

          本文链接:https://www.haomeiwen.com/subject/tmnogctx.html