我正在写一篇项目论文,偶然发现了一个可能使我的整个项目受到质疑的问题。所以我只想在采取任何进一步行动之前进行三重确认。
我在URL1上有一个javascript文件。为简单起见,javascript代码从URL2中检索信息。
无论我尝试了多少,这都行不通,所以我进行了谷歌搜索,并发现同源政策可能就是原因。
所以我再次问你,这不可能吗?
答案 0 :(得分:0)
这是完全可能的,但它有一些限制;
如果URL2提供JSONP方式,您可以从URL1访问URL2的信息。您将生成一个脚本标记,用于加载js文件(url2 / information?id = 123& callback = mycallback),其中JSON被放入指定的函数(在本例中为mycallback)。 URL2上的脚本看起来像这样;
mycallback({"json":"information"});
因此,URL1需要定义mycallback函数,并从URL2
获取信息另一种方法是利用可以跨域的XMLHttpRequest Level2。
另一种方法是通过onmessage / postmessage进行通信,并在URL1的页面中设置URL2。这也是Cross-Origin。
还有其他技术可以在相同的原始政策中制造漏洞,例如哈希(但与上述技术相比非常有限)