关于ajax跨域解读

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于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" onload = "getData()"></iframe>
<script>
function getData(){
var iframe=document.getElementById("proxy");
iframe.onload = function(){
var data = iframe.contentWindow.name;
alert(data);
}
}
</script>

总结来说,第一种方式,只适用于get请求;
第二三四种方式,则需要两个通信的页面同时操作。

 






















以上是关于关于ajax跨域解读的主要内容,如果未能解决你的问题,请参考以下文章

关于ajax访问跨域问题

ajax跨域 (转)

关于ajax跨域通信-博客园老牛大讲堂

关于AJAX的跨域问题

关于ajax跨域的一些解决方案

关于Ajax跨域请求