如果在网站http://www.mysite.com
中有一个外部js文件添加为
<script src="http://www.yoursite.com/new.js"></script>
在http://www.yoursite.com/new.js
js文件中,对http://www.yoursite.com/new.js
在这种情况下是否存在同源策略安全问题,因为它在另一个网站的网站中调用脚本?
答案 0 :(得分:6)
会有问题。 new.js
在mysite.com
范围内运行,而不是yoursite.com
。
编辑:更详细的解释是:当mysite.com打开标签时,该脚本在当前页面的范围内运行。脚本的来源无关紧要:它可以是内联,本地源或远程源,它仍然被认为是mysite的一部分。
如您所知,由于原始政策相同,mysite.com中的脚本无法访问yoursite.com上的任何内容。所以你不能这样做。
作为跨源通信的高级选项,请查看jsonp。它将要求yoursite.com提供特殊处理,但如果您对两个站点都有控制权,那么这应该不是问题。
答案 1 :(得分:0)
JSONP正是您所寻找的:http://en.wikipedia.org/wiki/JSON
5000米概述是JSONP使用相同的机制来请求您在上面使用的外部脚本。区别在于您的服务器将识别这一点,并将JSON响应打包为回调方法的参数。当您的站点收到此“脚本”时,它会执行它,从而将数据直接返回到您的回调方法中。
如果您能够使用像jQuery这样的框架,那么大多数客户端都将为您透明地处理。请在此处查看:http://api.jquery.com/jQuery.getJSON/