Tay*_*tay 10 javascript ajax jsonp cors
上下文:引用Mozilla文档:
对于未通过标准CORS检查的脚本,普通脚本标记会将最少的信息传递给window.onerror.为了允许对使用单独域进行静态媒体的站点进行错误记录,多个浏览器使用与标准img crossorigin属性相同的定义为脚本启用了crossorigin属性.
自从我们将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);
Run Code Online (Sandbox Code Playgroud)
我希望将crossorigin标记添加到插入到我的文档中的脚本标记中.但是,当我检查Developer工具中的脚本标记时,显然不存在.(我可以验证origin请求脚本时请求头中没有设置标头.)
现在,我正在回归使用这些跨域脚本的ajax请求,因此有一些解决方法,但现在我很好奇是否可以在动态脚本标记上添加crossorigin标记.
Tay*_*tay 46
好吧,我发现了我的问题.
这个:
script.crossorigin = 'anonymous';
Run Code Online (Sandbox Code Playgroud)
应该这样:
script.crossOrigin = 'anonymous';
Run Code Online (Sandbox Code Playgroud)
注意大写"O".该属性在HTML中没有大写,但在JS界面中大写.很高兴知道!
令人尴尬,但我决定永久化我的错误,而不是删除问题,以防其他人做同一个.
| 归档时间: |
|
| 查看次数: |
4844 次 |
| 最近记录: |