呼叫第3方api时发生403错误

时间:2019-07-02 08:34:43

标签: angular api

当我从邮递员处调用第三方API时,它的工作正常 但在角度我得到403错误 https://gsp.adaequare.com/test/enriched/ewb/ewayapi/GetEwayBill?ewbNo=351001073457 403

从原点“ https://gsp.adaequare.com/test/enriched/ewb/ewayapi/GetEwayBill?ewbNo=351001073457”到“ http://localhost:4200”处对XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:否'Access-Control-Allow-来源的标头出现在请求的资源上。

2 个答案:

答案 0 :(得分:1)

由于相同原产地政策,您的Angular应用程序正在运行此错误。意味着每个AJAX请求都必须与站点的确切主机,协议和端口相匹配。此错误不是特定于Angular的,并且会引发所有Web应用程序。如果

会发生此错误

要解决此错误,一种方法是修改标头。 CORS(跨源资源共享)是服务器说“即使您来自其他来源,我也会接受您的请求”的一种方式。这需要服务器的配合-因此,如果您无法修改服务器(例如,如果您使用的是外部API),则此方法将无效。

修改服务器以添加标头Access-Control-Allow-Origin:*,以从任何地方启用跨域请求(或指定域而不是*)。这应该可以解决您的问题。

答案 1 :(得分:0)

浏览器更加严格,如果您调用其他域,则比服务器必须使用特定标头来回答

,并且如果您使用内容类型为POST的请求:“ application / json”(还有更多),服务器还必须更正浏览器发送的预检OPTIONS请求的答案,出于安全原因,您将无法对其进行任何操作,这是更多: https://stackoverflow.com/a/29954326/9177552

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS