最近,我在script元素中添加了crossorigin属性来解决mutted异常问题。但是我发现了一个奇怪的问题,如果响应头没有设置正确的access-control-allow-origin,那么我会得到一个交叉原点错误而脚本将不会执行。


这里是代码:


 < script src ='https://blog.sentry.io/js/script.js'rossorigin> < / script>



 这是错误消息:


& #xA;

源自“ https://blog.sentry.io ”的脚本已被阻止来自
通过跨源资源共享策略加载:否
 'access-Control-Allow-Origin'标题出现在请求的
资源。因此不允许原点'null'访问。


这是请求标题:

&#xA ; GET /js/script.js HTTP / 1.1
主机:blog.sentry.io
连接:keep-alive
 Pragma:no-cache
 Cache-Control :no-cache
接受:* / *
 Origin:null
 User-Agent:Mozilla / 5.0(iPhone; CPU iPhone OS 8_0,如Mac OS X)AppleWebKit / 600.1.3(KHTML,like Gecko)Version / 8.0 Mobile / 12A4345d Safari / 600.1.4
 Accept-Encoding:gzip,deflate,sdch
 Accept-Language:zh-CN,zh; q = 0.8,en; q = 0.6,ja; q = 0.4
 Cookie:ajs_anonymous_id =%22d6975e43-f4d3-4d98-a74e-5b319594902a%22; ajs_user_id = NULL; ajs_group_id = NULL; _ga = GA1.2.141680712.1484118184; __ar_v4 = HBLTKULO45CAHNTTTEO3IG%3A20170110%3A2%7C7M3QZV2OWJGMBAGSKP2TG5%3A20170110%3A2%7CMLWCNCFTMJGD7GPDGE6RVT%3A20170110%3A2



 这是响应头:


 HTTP / 1.1 200 OK
服务器:nginx
日期:星期四,2017年2月2日10:50:40 GMT
内容类型:应用程序/ JavaScript的; charset = utf-8
 Content-Length:35758
 Connection:close
 Last-Modified:Thu,26 Jan 2017 18:37:33 GMT
 Expires:Tue,31 Jan 2017 05:01 :26 GMT
 Cache-Control:max-age = 600
内容编码:gzip
 Accept-Ranges:bytes
 X-Timer:S1486032640.581431,VS0,VE0
 Vary: Accept-Encoding
 Strict-Transport-Security:max-age = 31536000
 X-Frame-Options:SAMEORIGIN



 i尝试在whatwg规范中找到答案,规范说:





crossorigin属性是CORS设置属性。对于经典脚本,它控制是否在从其他源获取脚本时公开错误信息。对于模块脚本,它控制用于跨源请求的凭据模式。

 
与经典脚本不同,模块脚本需要使用CORS协议进行跨源提取。


所以我认为是crossorigin属性应该只控制错误信息,而不是脚本的执行。


导致此问题的原因是什么?我现在该怎么办才能解决这个问题?