背景
几年前,
onerror
处理程序和跨源脚本标签存在问题,有关此的更多信息。主要浏览器修复了该问题。
实际问题
我在 localhost 上托管一个简单页面,并包含来自不同域(例如“sitea”)的脚本,HTML 如下所示:
<html>
<head>
<script>window.onerror = function(e, f, g) { console.log('err',e,f,g) }</script>
</head>
<body><h2>test</h2>
<script src='http://siteA:8081/one.js' crossorigin='anonymous'></script>
</body>
</html>
上的脚本siteA
执行此操作:
var foo; foo.bar;
显然这会抛出,因为 bar 是未定义的。
不幸的是,我仍然在第 0 行遇到“脚本错误”,就像门票中描述的那样。
请注意,我是:
设置跨域属性。
在请求中看到“Origin”标头
将 Access-Control-Allow-Origin 标头设置为“*”并在开发 Web 工具上查看。
我在firefox和chrome都试过了,还是不行。任何人都知道为什么?