我正在使用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,或避免此问题。 我已经尝试过使用自定义代理配置,但是效果不好。
*此问题与其他类似问题不同,因为他们实际上有权访问后端,而我必须在不访问后端的情况下解决问题。
答案 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”
应该这样做!