上下文:引用Mozilla文档:
对于没有通过标准CORS检查的脚本,普通脚本标记将向window.onerror传递最小信息。为了允许为静态媒体使用单独域的站点进行错误日志记录,有几个浏览器使用与标准img跨源属性相同的定义为脚本启用了跨源属性。
自从我们将javascript移到CDN之后,我们就意识到我们的脚本受到了这个问题的困扰。我们将crossorigin属性添加到脚本标记中,这对于“硬编码”脚本标记很好,但是我们动态地加载了一些脚本,我不知道如何将crossorigin标记添加到这些脚本中。
在Chrome 40中:如果我使用Javascript动态添加脚本标记,如下所示:
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.charset = 'utf-8';
script.crossorigin = 'anonymous';
script.src = some_url_on_another_domain;
head.appendChild(script);我希望将交叉源标记添加到插入到文档中的脚本标记中。然而,当我检查开发工具中的脚本标记时,它显然并不存在。(在请求脚本时,我可以验证请求头中没有设置origin头。)
现在,我又回到了对这些跨域脚本使用ajax请求的问题上,因此有了解决办法,但现在我很好奇是否可以在动态脚本标记上添加交叉源标记。
发布于 2015-03-06 20:55:58
我发现了我的问题。
这是:
script.crossorigin = 'anonymous';应该是这样:
script.crossOrigin = 'anonymous';注意到大写"O"。该属性不在HTML中大写,而是在JS接口中大写。很高兴知道!
令人尴尬的是,但我决定永远记住我的错误,而不是删除这个问题,以防别人犯同样的错误。
https://stackoverflow.com/questions/28901166
复制相似问题