CORS跨域说明

在现代浏览器上写ajax请求主要是依赖于XMLHttpRequest对象
解决ajax请求同源策略办法
1.利用flash进行交互
2.同源下假设代理服务器
3.JSONP 但是只能get请求,并且要求只能返回javascript 这种方式跨域实际上是利用了浏览器允许跨域引用JavaScript资源
4.CORS  如果你的浏览器支持HTML5,那么就可以一劳永逸使用新的跨域策略:CORS

    CORS全称Cross-Origin Resource Sharing,是HTML5规范定义的如何跨域访问资源
    了解CORS之前我们先搞明白概念
    Origin表示本域,也就是浏览器当前页面的域。当浏览器向外域发送请求的时候,浏览器接收到响应之后,首先检查
    Access-Control-Allow-Origin是否包含本域,如果是则请求成功,如果不是则失败
    用下面的图来说明
                    GET /res/abc.data
                    Host:sina.com
                    User-Agent:Mozila/5.0 xxx
                    Origin:http://my.com
           my.com   ---------------------------------------------> sina.com
                    <---------------------------------------------
                    Http/1.1 200 ok
                    Access-AControl-Allow-Origin:http://my.com
                    Content-Type:application/xml

                    [xml data...]

   上面的这种跨域称之为简单请求,简单请求包括GETHEAD、和POST(POSTContent-Type类型仅限application/x-www-form-urlencoded
   multipart/form-datatext/plain,并且不能出现任何自定义头(例如 X-Custom:12345),通常可以满足90%的需求
   对于PUTDELETE以及其它类型如application/jsonPOST请求,在发送ajax请求之前会发送一个OPTIONS请求(称为preflighted请求)
   到这个URL上询问目标服务器是否接受
                 OPTIONS /path/to/resource HTTP/1.1
                 Host: bar.com
                 Origin: http://my.com
                 Access-Control-Request-Method: POST
 服务器必须响应并明确指出允许的Method
                 HTTP/1.1 200 OK
                 Access-Control-Allow-Origin: http://my.com
                 Access-Control-Allow-Methods: POST, GET, PUT, OPTIONS
                 Access-Control-Max-Age: 86400
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值