有如下的跨域方法,先列出提纲,每个方法的详细,有时间再补充进去
一、JSONP
二、CORS
CORS背后的思想,就是使用自定义的http头部让浏览器与服务器进行沟通,从而决定请求或者响应是应该成功还是应该失败。
CROS有简单请求 (simple request)和预请求(preflighted request),preflighted request比simple request多一个options的请求
simple request的条件是 (下面两个条件都必须要满足)
1、使用ge或者post请求,如果是post请求的话,Content-Type必须是如下的三种之一:application/x-www-form-urlencoded、multipart/form-data、text/plain.
2、没有设置自定义的头部
preflighted request的条件是(满足其中的一种条件)
1、使用了除get和post之外的其他方法,比如put、delete等。如果是post方法Context-Type是application/x-www-form-urlencoded、mutipart/form-data、text/plain这三种之外的其他类型,比如application/xml
2、使用了自动以的头部。比如设置了如下
invocation.setRequestHeader('X-PINGOTHER', 'pingpong');
invocation.setRequestHeader('Content-Type', 'application/xml');
三、利用location.hash+iframe
就是使用http://www.a.com/demo.html#data,里面的#data 锚
四、利用window.name+iframe
五、利用docment.domain+iframe
六、html5 windows.postMessage()
7、使用proxy