• OPTIONS请求 简单请求与 非简单请求


    当浏览器发出了一个跨域的xhr的时候,浏览器会自动在请求头加上一些参数,

    对于简单请求和非简单请求是不一样的,先看一下简单请求的定义:

    (1) 请求方法是以下三种方法之一:

    • HEAD
    • GET
    • POST

    (2)HTTP的头信息不超出以下几种字段:

    • Accept
    • Content-Language
    • Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain

    的时候是简单请求。

    对于简单请求,浏览器直接在请求头上加一个Origin字段,说明本次请求来自哪个源(协议+域名+端口)

     服务器根据这个值,决定是否,如果返回响应头没有Access-Control-Allow-Origin,那么会被前端xhronerror捕获(状态码是200)

    否则是非简单请求,对于非简单请求,浏览器会发出预检请求 options是浏览器的preflight(预检)请求,

    除了 Origin,至少还会多出两个字段 Access-Control-Request-Method、Access-Control-Request-Headers

    (1)Access-Control-Request-Method

    该字段是必须的,用来列出浏览器的CORS请求会用到哪个HTTP方法。

    (2)Access-Control-Request-Headers

    该字段是一个逗号分隔的字符串,指定浏览器CORS请求会额外发送的头信息字段。

    与JSONP的对比

    CORS与JSONP的使用目的相同,但是比JSONP更强大。

    JSONP只支持GET请求。

  • 相关阅读:
    JS 弹窗“是否删除”
    input file 保存图片
    Form之action提交不刷新不跳转
    checkbox实现单选
    最近的项目系之2——core3.0整合Autofac
    最近的项目系列1——core整合SPA
    最近的项目之开篇
    短信验证码“最佳实践”
    Asp.net core使用MediatR进程内发布/订阅
    记一次带层级结构列表数据计算性能优化
  • 原文地址:https://www.cnblogs.com/eret9616/p/9791973.html
Copyright © 2020-2023  润新知