• 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请求。

  • 相关阅读:
    初识Python(3)__Python 数字
    初识Python(2)__Python 对象
    正式开始学习python
    现代浏览器的工作原理
    data URI scheme
    连接池
    介绍缓存的基本概念和常用的缓存技术(转)
    前后端及常用语言介绍
    非关系型数据库和关系型数据库区别
    VC编译连接选项详解(转)
  • 原文地址:https://www.cnblogs.com/eret9616/p/9791973.html
Copyright © 2020-2023  润新知