外部js文件中的相同原始策略

Ani*_*ish 4 javascript ajax same-origin-policy

如果在网站上http://www.mysite.com有一个外部的js文件添加为

<script src="http://www.yoursite.com/new.js"></script> 
Run Code Online (Sandbox Code Playgroud)

http://www.yoursite.com/new.jsjs文件中,有一个对脚本的ajax调用http://www.yoursite.com/new.js

在这种情况下,是否存在同源策略安全问题,因为它在另一个网站的网站中调用脚本?

Nir*_*evy 6

会有问题.new.js在范围内运行mysite.com,而不是yoursite.com.

编辑:更详细的解释是:当mysite.com打开一个标签时,该脚本在当前页面的范围内运行.脚本的来源无关紧要:它可以是内联,本地源或远程源,它仍然被认为是mysite的一部分.

如您所知,由于原始策略相同,mysite.com中的脚本无法访问yoursite.com上的任何内容.所以你不能这样做.

作为跨源通信的高级选项,请查看jsonp.它将要求yoursite.com提供特殊处理,但如果您对两个站点都有控制权,那么这应该不是问题.