Javascript <;脚本交叉源>;,为什么得到';被CORS'阻止;错误?

Javascript <;脚本交叉源>;,为什么得到';被CORS'阻止;错误?,javascript,web,cross-domain,Javascript,Web,Cross Domain,最近,我向script元素添加了crossorigin属性,以解决复杂的异常问题。但是我发现了一个奇怪的问题,如果响应头没有设置正确的访问控制allow origin,那么我会得到一个跨源错误,脚本将不会执行 代码如下: <script src = 'https://blog.sentry.io/js/script.js' crossorigin></script> 这是响应标题: HTTP/1.1 200 OK Server: nginx Date: Thu, 02

最近,我向script元素添加了crossorigin属性,以解决复杂的异常问题。但是我发现了一个奇怪的问题,如果响应头没有设置正确的访问控制allow origin,那么我会得到一个跨源错误,脚本将不会执行

代码如下:

<script src = 'https://blog.sentry.io/js/script.js' crossorigin></script>
这是响应标题:

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 02 Feb 2017 10:50:40 GMT
Content-Type: application/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
Content-Encoding: gzip
Accept-Ranges: bytes
X-Timer: S1486032640.581431,VS0,VE0
Vary: Accept-Encoding
Strict-Transport-Security: max-age=31536000
X-Frame-Options: SAMEORIGIN
我试图在whatwg规范中找到答案,规范中说:

交叉原点属性是CORS设置属性。对于经典脚本,它控制从其他来源获取脚本时是否会暴露错误信息。对于模块脚本,它控制用于跨源请求的凭据模式

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

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


是什么导致了这个问题?我现在可以做些什么来解决这个问题呢?

尝试发送
访问控制允许源站
头,作为
访问控制允许源站“*”
访问控制允许源站“your domain.com”
@DavidR,添加访问控制允许源站头确实有效,但根据规范,它应该是不必要的。此外,我还发现了一个有趣的情况,一些浏览器可以在没有访问控制的情况下执行脚本Allow Origin headerCool!。。你能把你的答案贴出来吗,这样其他人可能会受益。:-)
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 02 Feb 2017 10:50:40 GMT
Content-Type: application/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
Content-Encoding: gzip
Accept-Ranges: bytes
X-Timer: S1486032640.581431,VS0,VE0
Vary: Accept-Encoding
Strict-Transport-Security: max-age=31536000
X-Frame-Options: SAMEORIGIN