我正在创建一个有角度的应用程序,我想使用DEGIRO公共API。跨源请求在我的应用程序和外部API之间出现了问题。
,当使用ng serve
在本地主机上运行应用程序时,我的飞行前请求通过访问控制检查完美。但是,当我使用运行应用程序时,遇到了问题--任何其他来源的主机,就像任何IPv4 4-address:4200与ng serve --host [any IPv4-address]
。同样的问题在部署到例如Firebase之后也会发生。
为了与API通信,我使用具有角度的HttpClientModule,如下图所示。
下面的错误信息向我描述了我遇到的问题。
"Access to XMLHttpRequest at 'https://trader.degiro.nl/login/secure/login' from origin
'http://192.168.178.120:4200' has been blocked by CORS policy: Response to preflight request
doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the
requested resource."
此错误使我感到困惑的主要原因是它不发生在本地主机中。在下面的两个图像中,显示了飞行前请求头(localhost:4200& 192.168.178.52:4200)之间的差异。请注意,唯一的区别是起源和引用标题。在Firebase上部署的应用程序也类似于这样。
我尝试过通过添加一个'content-type': 'text/plain'
头来跳过飞行前请求,但是即使是现在简单的请求也不会被CORS策略所接受。
我也读过几个类似的问题,但没有一个完全符合我的情况,他们的解决方案也没有。除了这些,我还读了一些关于CORS的文章。我发现这篇文章内容丰富,很有帮助。https://www.html5rocks.com/en/tutorials/cors/
我想不出更多的背景了。我希望这篇文章是清楚的,你能帮上忙。无论如何,谢谢!
https://stackoverflow.com/questions/59022613
复制相似问题