在 Angular 中运行 Jasmine 和 Karma 时出现 CORS 错误

Man*_*dha 10 cors karma-jasmine

我正在运行specs并注意到浏览器窗口中出现以下错误

zone.js:2990 Access to XMLHttpRequest at 'ng:///DynamicTestModule/NewPracticeQuestionComponent_Host.ngfactory.js' from origin 'http://localhost:9876' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

我想在我的应用程序中的某个地方,已经发送了一些导致CORS问题的消息。我假设它使用的 Web 服务器Karma正在阻止请求。

我可以配置Karma禁用CORS策略吗?

Ati*_*dri 10

运行您的测试,--sourcemaps=false您将获得正确的错误消息。

这是这里的一个问题:https : //github.com/angular/angular-cli/issues/7296

另外,速记:

ng test -sm=false
Run Code Online (Sandbox Code Playgroud)

从角度 6 开始,命令是:

ng test --source-map=false
Run Code Online (Sandbox Code Playgroud)


Alb*_*lio 5

我不认为这是 CORS 问题,除非您实际上是跨域调用某些内容。

我有一个类似的问题,一个组件在返回类似错误的代码中设置日期。您可能没有在测试中设置一些必需的值,或者您没有在正确的位置调用 fixture.detectChanges()。

尝试在运行 npm test(或 ng test)时将 --source-map 标志设置为 false,实际上可能会得到更有意义的错误。

除了错误消息外,还发布受影响的代码通常是一个好主意。

干杯,阿尔贝托