zoukankan      html  css  js  c++  java
  • 跨域问题

    跨域CORS

    1.

    Cors:跨域资源共享:Cross-origin resource  sharing

    它允许浏览器向跨源服务器,发出XMLHttpRequest,从而克服了AJAX只能同源使用的限制。

    2.

    Cors需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10

    整个cors通信过程,都是浏览器自动完成的,不需要用户参与,对于开发者,cors通信与同源的AJAX通信没有差别,代码完全一样,浏览器一旦发现AJAX请求跨域,就会自动添加一些附加的头信息,有时还会多出一次附加请求,用户不会有感觉。

    因此,实现cors通信的关键是服务器,只要实现了CORS接口,就可以实现跨源通信。

    3.

    两种请求:

    浏览器将cors请求分为两大类:简单请求,非简单请求。

    满足以下条件为简单请求:

    (1).请求方法为以下之一:

    Head  get  post

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

    Accept

    Accept-language

    Content-language

    Last-Event-ID

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

    其余不满足的为非简单请求。

    浏览器对于两种请求的处理不一样

    4.

    基本流程

    (1)  简单请求

    浏览器直接发出CORS请求,具体说,就是在头信息中添加一个Origin字段。

    例子:

    浏览器发现这次跨源AJAX请求是简单请求,就自动在头信息中,添加Origin字段。

    GET /cors HTTP/1.1

    Origin: http://api.bob.com

    Host: api.alice.com

    Accept-Language: en-US

    Connection: keep-alive

    User-Agent: Mozilla/5.0...

     

    (2).非简单请求

    非简单请求的cors请求,会在正式通信之前,增加一次HTTP查询请求,称为“预检”请求。

    博客地址:

    http://www.ruanyifeng.com/blog/2016/04/cors.html

     

  • 相关阅读:
    Django(一)
    web 框架
    图片
    day16
    day 15
    day14 HTML CSS
    day12
    day11
    python IO多路复用,初识多线程
    python socket
  • 原文地址:https://www.cnblogs.com/gaoxuewei/p/8085870.html
Copyright © 2011-2022 走看看