首页 > 代码库 > 关于ajax跨域解读
关于ajax跨域解读
首先要了解何为跨域,(协议、域名、端口任意一个不同)的web资源。
如何解决跨域:
1,jsonp 它只支持GET请求而不支持POST等其它类型的HTTP请求;
例如angular 中,
如下使用,$http.jsonp(‘some/trusted/url‘, {jsonpCallbackParam: ‘callback‘})
2,HTML5中window.postMessage,在两个页面之间的数据传递,不适用于客户端和服务端的通信;
3,通过修改document.domain来跨子域,需要对两个页面设置document.domain;
4,通过设置window.name的方式,比如:www.example.com/a.html 想访问www.cnblogs.com/data.html的内容
则需要在 data页面中设置window.name = "a.html页面想要获取的数据";
在a.html中写:
写一个iframe
<iframe id = "proxy" src="http://www.cnblogs.com/data.html" style="display:none" onl oad = "getData()"></iframe>
<script>
function getData(){
var iframe=document.getElementById("proxy");
iframe.onload = function(){
var data = http://www.mamicode.com/iframe.contentWindow.name;
alert(data);
}
}
</script>
总结来说,第一种方式,只适用于get请求;
第二三四种方式,则需要两个通信的页面同时操作。
关于ajax跨域解读