我写了一篇项目论文,并且偶然发现了一个可能使我的整个项目存在疑问的问题。所以我只是想在我采取进一步行动之前进行三重确认。从其他网站获取信息
我在URL1上有一个JavaScript文件。为了简单起见,JavaScript代码从URL2中检索信息。
无论我多么努力,这都不起作用,所以我做了一次Google搜索,发现同源策略可能是原因。
所以我再次问你,这是不可能的吗?
我写了一篇项目论文,并且偶然发现了一个可能使我的整个项目存在疑问的问题。所以我只是想在我采取进一步行动之前进行三重确认。从其他网站获取信息
我在URL1上有一个JavaScript文件。为了简单起见,JavaScript代码从URL2中检索信息。
无论我多么努力,这都不起作用,所以我做了一次Google搜索,发现同源策略可能是原因。
所以我再次问你,这是不可能的吗?
这是完全可能的,但有一些限制;
如果URL2提供JSONP方式,则可以从URL1访问URL2的信息。您将生成一个脚本标记,用于加载将JSON放入指定函数(本例中为mycallback)的js文件(url2/information?id = 123callback = mycallback)。 URL2上的脚本看起来像这样;
mycallback({"json":"information"});
因此,URL1需要限定的myCallBack函数函数和将得到URL2
的信息的不同的方法是利用XMLHttpRequest Level2可去跨域。
另一种方法是通过onmessage/postmessage进行通信,并在URL1的页面中设置URL2 iframed。这也是跨越原点。
还有其他一些工艺,使在同一起源的政策一个洞,就像Hashs(但相比之下是非常有限的上述工艺)
这不是完全不可能,但URL2必须支持跨源资源共享:http://en.wikipedia.org/wiki/Cross-origin_resource_sharing – nhahtdh
或者您可以从服务器端aswel获取信息。 –
@ChandraSekharWalajapet,在服务器端,你的意思是URL1从URL2检索信息并将其解析为javascript。如果是这样,那现在不是一个选项。我会先问我的主管。 – RedHotScalability