zoukankan      html  css  js  c++  java
  • 前端跨域 OPTIONS 请求

    1. 检测服务器所支持的请求方法

    可以使用 OPTIONS 方法对服务器发起请求,响应报文包含一个 Allow 首部字段,该字段的值表明了服务器支持的所有 HTTP 方法

    2. CORS 中的预检请求

    CORS(跨域资源共享) 中,可以使用 OPTIONS 方法发起一个预检请求,以检测实际请求是否可以被服务器所接受。预检请求报文中的 Access-Control-Request-Method 首部字段告知服务器实际请求所使用的 HTTP 方法;Access-Control-Request-Headers 首部字段告知服务器实际请求所携带的自定义首部字段。服务器基于从预检请求获得的信息来判断,是否接受接下来的实际请求。

    3. 简单请求与复杂请求

    某些请求不会触发 CORS 预检请求。我们称这样的请求为“简单请求”。若请求满足所有下述条件,则该请求可视为“简单请求”:

    • 使用下列方法之一:
      • GET
      • HEAD
      • POST
    • Fetch 规范定义了对 CORS 安全的首部字段集合(Headers),不得人为设置该集合之外的其他首部字段。该集合为:
      • Accept
      • Accept-Language
      • Content-Language
      • Content-Type (需要注意额外的限制)
    • Content-Type 的值仅限于下列三者之一:
      • text/plain
      • multipart/form-data
      • application/x-www-form-urlencoded

    可以简单的理解,简单请求以外的请求就是复杂请求。

    请注意,复杂请求会发出OPTIONS预检请求,并只携带设置的headers字段,而不会携带这些字段具体的值。因此服务器获取不到headers字段的值,应该先通过这次请求,才能接收到真实的请求。

    此外,真实的请求依然需要服务器配置相关的跨域设置。

     

  • 相关阅读:
    element 树形控件使用
    js粘贴图片并显示
    vue-element Tree树形控件通过id默认选中
    解决win10shift+右键显示在此处打开powershell而不是命令窗口的问题
    maven安装与配置
    解决dos窗口中文乱码问题
    vue单页面应用刷新网页后vuex的state数据丢失的解决方案
    vue 单个倒计时组件
    js将秒转换为时分秒
    vue3.0用vue-awesome-swiper
  • 原文地址:https://www.cnblogs.com/diyichen/p/11593191.html
Copyright © 2011-2022 走看看