为什么 Angular2 在从外部服务器加载 main.js 时需要 CORS?

Why does Angular2 require CORS when loading main.js from foreign server?

我收到这个错误:

XMLHttpRequest cannot load http://otherwebsite.com/myapp/app/main.js.
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://otherwebsite.com' is therefore not allowed access.

在 Angular2 中引用 main.js 文件时:

System.import('http://otherwebsite.com/myapp/app/main')

但没有其他 .js 文件需要从其他站点提取 CORS。

我知道如何添加 CORS support for Web API 2 for methods but this is not a method. I know how to add CORS support for Apache folders in .htaccess files. And with a little digging I found how to add IIS 7 CORS folder support 让这个错误消失。

为什么当所有其他 .js 文件加载时没有 CORS 问题时 Angular2 需要我的 main.js CORS?

如果脚本是从另一个域(甚至意味着不同的 IP 端口)加载的,而不是 index.html 最初加载的,那么您从中请求文件的服务器需要提供 CORS headers, 否则浏览器不允许获取。