显示 Javascript“同源策略”违规

Posted

技术标签:

【中文标题】显示 Javascript“同源策略”违规【英文标题】:Display Javascript "same origin policy" violations 【发布时间】:2011-11-08 09:30:57 【问题描述】:

我正在开发一个运行简单 HTTP 服务器和 WebView 的移动应用程序。 WebView 显示应通过 javascript (GET) 访问服务器的外部网站。不幸的是,这不起作用,我认为这是由于相同的来源策略,但控制台没有显示任何错误。我之前遇到过类似的错误,需要我在服务器端定义“Access-Control-Allow-Origin:*”。由于没有错误消息(Firebug“Net”选项卡显示已完成的 GET 请求,但“响应”数据为空),因此该错误已经需要一段时间才能找到。现在我假设外部脚本中存在同源策略违规,但由于缺少错误消息而很难判断。我看到的唯一“提示”是在 Firebug 的“网络”选项卡中,显示了一个“永远不会完成”的连接。我检查了发送到本地主机的包,但甚至没有连接尝试 => 因此我认为浏览器正在阻止它。

如何在 Firefox 中错误(扩展:Firebug、Webdeveloper)?

【问题讨论】:

这是哪个移动平台?当您说应用程序“运行一个简单的 HTTP 服务器”时,您的意思是该服务器正在手机上运行? 【参考方案1】:

Firefox(3.6.20 和 Chrome)在 XMLHttpRequest 跨域违规时引发错误。 try... catch(ignore) 块可以消除这些错误。如果您知道请求的实际路径,您可以在 Firebug 的“Net”选项卡中查看,所有请求(即使是那些被“同源策略”拒绝的请求)都显示在“All”部分,而在“XHR”部分显示那些被“同源政策”拒绝。

【讨论】:

我只看到从未完成的连接,但没有提示(可能)违反同源策略。如果浏览器能告诉我“由于相同的来源策略,我没有完成此连接”之类的信息,那就太好了。我检查了在 localhost 上发送的包,甚至没有尝试连接,因此我 假设 浏览器阻止了它。

以上是关于显示 Javascript“同源策略”违规的主要内容,如果未能解决你的问题,请参考以下文章

同源策略

javascript 同源策略

同源策略

同源策略与Jsonp

javascript和同源策略混淆

同源策略CORS