zoukankan      html  css  js  c++  java
  • cors跨域请求

    说明

    协议(http,https等),域名,端口任何一个不同,浏览器请求将会发生跨域请求。
    跨域资源共享(cors)允许web应用服务器进行跨域访问控制。从而使跨域数据传输得以安全进行。cors需要客户端和服务器同时支持,目前所有的浏览器都支持该机制。
    跨资源共享标准新增了一组http首部字段,允许服务器声明那些源站有权限访问哪些资源。对那些可能对服务器数据产生副作用的的http请求方法(特别是GET以外的http请求),浏览器必须使用OPTIONS方法发起一个预检请求(preflight request),从而获知服务器是否允许该跨域请求。
    服务器确认允许之后,才发起实际的http请求。

    简单请求

    某些请求不会触发 CORS 预检请求。本文称这样的请求为“简单请求”。
    同时满足一下所有条件可视为简单请求。

    1.使用如下方法:HTTP,HEAD,POST
    2.content-type属于以下几种:application/x-www-form-urlencoded,multipart/form-data,text/plain

    跨域请求服务器返回Access-Control-Allow-Origin: *,表明Origin(请求来源)所指定的任何域名都可以访问,如果写某几个,则除了所写的以外都不可以访问。

    非简单请求

    • 预检请求
      当满足以下任何一个条件时,使用 OPTIONS方法发起一个预检请求到服务器,以获知服务器是否允许该实际请求。

    1.使用了以下任何一个http方法:PUT,DELETE,CONNECT,OPTIONS,TRACE,PATCH
    2.人为设置了对 CORS 安全的首部字段集合之外的其他首部字段。即不属于以下集合的,该集合为:Accept,Accept-Language,Content-Language,Content-Type ,DPR,Downlink,Save-Data,Viewport-Width,Width.
    3.content-type不属于以下几种:application/x-www-form-urlencoded,multipart/form-data,text/plain

    HTTP 请求首部字段

    如预检请求中,在OPTIONS头中有

    Origin:

    它不包含任何路径信息,只是服务器名称。

    Access-Control-Request-Method: POST
    Access-Control-Request-Headers: Sid

    向服务器说明请求使用POST方法,且有自定义的头Sid。

    HTTP 响应首部字段

    Access-Control-Allow-Origin: *

    服务器返回Access-Control-Allow-Origin允许来自任意域名的请求

    Access-Control-Allow-Methods: POST, GET, OPTIONS
    Access-Control-Allow-Headers: Sid, Content-Type

    服务器返回Access-Control-Allow-Origin允许来自任意域名的请求。允许的方法和允许携带的header。

    Access-Control-Expose-Headers: X-Another-Custom-Header

    首部字段指定了服务端允许的首部字段集合。

    Access-Control-Max-Age:

    首部字段指明了预检请求的响应的有效时间.

    Access-Control-Allow-Credentials: true

  • 相关阅读:
    poj 2352 Stars(线段树)
    poj 2029 Get Many Persimmon Trees
    .Net remoting 的解答,以及跟WebService的区别
    关于Xcode4.2中的release“不能”使用的理解
    委托的学习日志
    钩子是啥?以及用来说啥,是不是可以用来做即时通讯?
    C#后台程序与HTML页面中JS方法互调(功能类似于Ajax中的DWR)
    接触了一下项目管理系统软件:禅道项目管理软件、Bugfree
    将string变为int 的几种方法方法比较
    Hashtable、Dictionary、SortedDictionary、SortedList的比较应用
  • 原文地址:https://www.cnblogs.com/mentalidade/p/6994113.html
Copyright © 2011-2022 走看看