码迷,mamicode.com
首页 > Web开发 > 详细

关于ajax跨域解读

时间:2017-04-04 20:51:14      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:com   .post   支持   play   服务   on()   example   之间   页面   


首先要了解何为跨域,(协议、域名、端口任意一个不同)的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跨域解读

标签:com   .post   支持   play   服务   on()   example   之间   页面   

原文地址:http://www.cnblogs.com/susie-note/p/ajax-01.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!