跨域方法总结

有如下的跨域方法,先列出提纲,每个方法的详细,有时间再补充进去

一、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

原文地址:https://www.cnblogs.com/kaijiemo/p/4689964.html