4

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

<script src="http://www.yoursite.com/new.js"></script> 

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

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

4

2 回答 2

6

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

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

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

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

于 2010-09-06T10:24:14.060 回答
0

JSONP 正是您正在寻找的:http ://en.wikipedia.org/wiki/JSON

5,000m 的概述是 JSONP 使用与您在上面使用的相同的机制来请求外部脚本。不同之处在于您的服务器将识别这一点并将 JSON 响应打包为回调方法的参数。当您的站点收到此“脚本”时,它会执行它,从而将数据直接返回到您的回调方法中。

如果您能够使用像 jQuery 这样的框架,那么大部分客户端都将为您透明地处理。在这里查看:http: //api.jquery.com/jQuery.getJSON/

于 2010-09-07T11:29:44.887 回答