“脚本错误”。当异常违反了浏览器的同源策略时,即在错误发生在Firefox,Safari和Chrome中时,即当错误发生在托管于当前页面域之外的域中的脚本中时。
此行为是有意的,以防止脚本将信息泄漏到外部域。有关为何有此必要的示例,请想象一下意外访问
evilsite.com,其中包含的页面
<scriptsrc="yourbank.com/index.html">。(是的,我们将脚本标记指向html而不是JS)。这将导致脚本错误,但是该错误很有趣,因为它可以告诉我们是否已登录。如果您已登录,则错误可能是
'WelcomeFred...' is undefined,而如果您未登录,则可能是
'Please Login ...' is undefined。遵循这些原则。
如果evilsite.com是针对排名前20位的银行机构这样做的,那么他们会非常了解您访问的银行站点,并且可以提供更具针对性的网络钓鱼页面。(当然,这只是一个例子。但是它说明了为什么浏览器不应允许
任何 数据跨越域边界。)
我已经在Safari,Chrome和Firefox的最新版本中对此进行了测试-他们都这样做。IE9不会-
它将x起源异常与同起源异常相同。(而且Opera不支持onerror。)
从马口说起:在将异常传递给onerror()时检查来源的WebKit源。并检查Firefox源。
更新(10/21/11)
:跟踪此问题的Firefox错误包括指向启发此行为的博客文章的链接。
UPDATE(12/2/14)
:现在,您可以通过在脚本标签上指定
crossorigin属性,并让服务器发送适当的CORS HTTP响应标头,在某些浏览器上启用完整的跨域错误报告。



