通过Angular启用CORS

时间:2019-11-01 22:45:10

标签: angular cors

我正在使用Angular 7,并且应该构建一个前端,并将后端部署在Heroku上。由于我无法编辑后端(显然没有启用CORS),因此无法访问任何api并出现错误:

从原点“ http://ebit-front-test.herokuapp.com/register”到“ http://localhost:4200”的XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:它没有HTTP正常状态。 register.service.ts:31

后端返回的代码为0,正文为:[object ProgressEvent]

是否有一种方法可以通过Angular启用CORS,或避免此问题。 我已经尝试过使用自定义代理配置,但是效果不好。

*此问题与其他类似问题不同,因为他们实际上有权访问后端,而我必须在不访问后端的情况下解决问题。

2 个答案:

答案 0 :(得分:0)

需要在服务器上为“真实”应用程序配置CORS,您希望非开发人员使用该应用程序。

但是,出于测试目的,您可以使用代理服务器添加服务器应添加的标头。

例如,参见https://elements.heroku.com/buttons/marcus2vinicius/cors-anywhere

答案 1 :(得分:-1)

对于其他所有遇到此问题的人,我都找到了一种避免CORS错误的方法。如果您在没有网络安全保护的情况下运行Chrome,则CORS错误将消失。

这不会启用CORS,因此,如果您无权访问后端但需要开发前端,则这是一个临时解决方案。

无需网络安全即可运行的步骤:

1)以管理员身份运行命令提示符,并使用此命令杀死所有Chrome实例:

taskkill / F / IM chrome.exe

2)使用以下命令在禁用了网络安全性的情况下运行新的Chrome实例:

启动Chrome https://teckangaroo.com/chrome-disable-web-security/ –禁用Web安全–user-data-dir =“ C:\ teckangaroo.com”

应该这样做!