首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在动态加载的脚本中添加“跨源”标记?

如何在动态加载的脚本中添加“跨源”标记?
EN

Stack Overflow用户
提问于 2015-03-06 14:42:21
回答 1查看 11.2K关注 0票数 24

上下文:引用Mozilla文档:

对于没有通过标准CORS检查的脚本,普通脚本标记将向window.onerror传递最小信息。为了允许为静态媒体使用单独域的站点进行错误日志记录,有几个浏览器使用与标准img跨源属性相同的定义为脚本启用了跨源属性。

自从我们将javascript移到CDN之后,我们就意识到我们的脚本受到了这个问题的困扰。我们将crossorigin属性添加到脚本标记中,这对于“硬编码”脚本标记很好,但是我们动态地加载了一些脚本,我不知道如何将crossorigin标记添加到这些脚本中。

在Chrome 40中:如果我使用Javascript动态添加脚本标记,如下所示:

代码语言: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请求的问题上,因此有了解决办法,但现在我很好奇是否可以在动态脚本标记上添加交叉源标记。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-06 20:55:58

我发现了我的问题。

这是:

代码语言:javascript
运行
复制
script.crossorigin = 'anonymous';

应该是这样:

代码语言:javascript
运行
复制
script.crossOrigin = 'anonymous';

注意到大写"O"。该属性不在HTML中大写,而是在JS接口中大写。很高兴知道!

令人尴尬的是,但我决定永远记住我的错误,而不是删除这个问题,以防别人犯同样的错误。

票数 85
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28901166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档