https://npmcdn.com/ng2-img-cropper/index.js 网站上没有 'Access-Control-Allow-Origin' header

No 'Access-Control-Allow-Origin' header on https://npmcdn.com/ng2-img-cropper/index.js website

当我在开发我的应用程序时,我开始收到此错误:

XMLHttpRequest cannot load https://npmcdn.com/ng2-img-cropper/index.js. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.

我正在考虑导致错误的原因。我知道有一个 https://npmcdn.com/** url,所以它可能不在我的电脑中,但我只是想确定一下。

另外,我尝试过直接从浏览器访问网站,一切正常。它把脚本等还给我。这对我来说很奇怪,因为当我开始得到这个脚本时,我实际上是在我的 back-end 上使用 Access-Control-Allow-Origin,但我试图注释掉所有内容,但我仍然得到它。我正在考虑因为我的 .htaccess 文件而发生的事情,我也在编辑它。我可以知道你的意见这是怎么回事吗?是否可能是我的电脑或网络连接导致的?

更新

我遇到的问题是 node_module ng2-img-cropper。在我不确定这不是我这边的问题之前,我不想发布它。我发现这个 node_module 正在使用旧的 npmcdn.com 网站来加载它的文件。它总是调用 npmcdn.com 并将其重定向到 unpkg.com。接下来,如果你在 npmcdn.com 上尝试 GET 请求,它会将你重定向到 unpkg.com,即使它给了我所有数据,并且 headers 已设置,它可能会检查 headers 来自 npmcdn.com 网站,并说我无法捕捉到它。知道如何解决这个问题吗?我正在考虑更改 npm 中的配置,以便每个 node_module 都会调用 unpkg.com,而不是旧的 npmcdn.com。但是在哪里可以找到这个配置文件?

您的错误是说您不能通过域执行 (AJAX) 请求。从域 www.site-a.com 您不能向 www.site-b.com 发出请求,因为这不是同一个域。这是 Web 浏览器安全性。

如果你想从www.site-a.com请求www.site-b.com,那么www.site-a.com必须设置header 'Access-Control-Allow-Origin' 允许其他域请求它。

如果您有权访问 https://npmcdn.com,您可以配置服务器,否则您将无法请求它。

我知道 npmcdn.com 刚刚移动到 unpkg.com,也许重定向没有正确设置 header。直接指向 unpkg.com 可以吗?

我唯一的解决方案不是最好的,但这种方式奏效了。我从 node_modules 文件夹复制了整个模块并放入我的 src/app/ 位置。然后在组件中,我刚刚从我的应用程序文件夹中的路径导入了组件并添加了 /index,因此它从 index.ts 中获取导出。