87,910
社区成员
发帖
与我相关
我的任务
分享
比如说,浏览器的两个tab页中分别打开了http://www.baidu.com/index.html和http: //www.google.com/index.html,其中,JavaScript1和JavaScript3是属于百度的脚本,而 JavaScript2是属于谷歌的脚本,当浏览器的tab1要运行一个脚本时,便会进行同源检查,只有和www.baidu.com同源的脚本才能被执 行,所谓同源,就是指域名、协议、端口相同。所以,tab1只能执行JavaScript1和JavaScript3脚本,而JavaScript2不能 执行,从而防止其他网页对本网页的非法篡改。
来源于哪里?百度随便一搜便是,地址:http://hikin.iteye.com/blog/857573
还有你最后一个问题:
浏览器为什么不支持ajax跨域呢,脑子抽了一下,突然不理解了,创建一个form然后js脚本submit不照样可以跨域吗?为什么ajax跨域要被限制呢?
这是你的问题还是问我?我不会的说。。。我还是想知道我第二个问题如果没有同源策略,应该如何实现?
当浏览器的tab1要运行一个脚本时,便会进行同源检查,只有和www.baidu.com同源的脚本才能被执行
1可以用jsonp来替代ajax,虽然被请求的页面可以设置access-control-allow-origin为*允许跨域,但是xhr对象在IE8-下用的对象不一样,兼容性不是很好 iframe/window.open这种如果你没有权限修改页面内容,没办法实现互相操作。如果你能控制,可以通过插入iframe做代理来实现跨域,参考:javascript通过iframe加载同源代理页面实现顶级域跨域操作