Javascript 爱奥尼亚3号的地狱

Javascript 爱奥尼亚3号的地狱,javascript,typescript,ionic-framework,cors,ionic3,Javascript,Typescript,Ionic Framework,Cors,Ionic3,我有一个后端服务器(Spring Boot,由nginx代理),我的Ionic应用程序可以与之通信。对于每个请求,它都会发送以下标题:访问控制请求标题:,访问控制允许标题:,访问控制允许来源:,访问控制允许方法:GET、POST、PUT、HEAD、OPTIONS、DELETE、PATCH。没有例外 它还允许选项请求,并为每个请求返回HTTP 200 现在,我有一个ionic应用程序,它使用@angular/common/http。在浏览器中,一切正常,我可以优雅地发出GET和POST请求 但在e

我有一个后端服务器(Spring Boot,由nginx代理),我的Ionic应用程序可以与之通信。对于每个请求,它都会发送以下标题:
访问控制请求标题:
访问控制允许标题:
访问控制允许来源:
访问控制允许方法:GET、POST、PUT、HEAD、OPTIONS、DELETE、PATCH
。没有例外

它还允许
选项
请求,并为每个请求返回HTTP 200

现在,我有一个ionic应用程序,它使用
@angular/common/http
。在浏览器中,一切正常,我可以优雅地发出
GET
POST
请求

但在emulator中(当我使用
ionic cordova Simulate ios
运行时,我只能发出
GET
请求,
POST
s失败,原因如下:

{"headers":{"normalizedNames":{},"lazyUpdate":null,"headers":{}},"status":0,"statusText":"Unknown Error","url":null,"ok":false,"name":"HttpErrorResponse","message":"Http failure response for (unknown url): 0 Unknown Error","error":{"isTrusted":true}}
如您所见,它显示的是
状态:0
。这指的是
CORS
问题,但我不知道如何进一步调试此问题


我的请求在邮递员处都成功了,甚至在
curl
处也成功了。只有在emulator中,请求才会失败。

CORS
再次,我希望这可能会对某些人有所帮助:

显然,
访问控制允许标头的通配符(
*
)值仅在2016年5月(,)才被接受,因此某些浏览器可能仍然不支持它。因此,更改为:

Access-Control-Allow-Headers: *


(基本上,我的应用程序使用的标题的确切值),我能够解决该问题。显然,我在桌面上使用的浏览器支持通配符标题值,但模拟器和设备的浏览器不支持通配符标题值。绝对不是设备与模拟器的问题,而是浏览器与浏览器的问题。

可能与@HikmatGurbanli重复。您是否敢于阅读和比较这些问题?我无法使用代理,因为我正在准备部署我的应用程序。并且所提到的问题中的每一步都已经不走运。这是一个老生常谈,但很好:。这说明在设备上运行时没有原点,因此CORS不应发挥作用。您能确认在模拟器中运行时没有选项请求吗?您尝试过吗在物理设备上?@BRass谢谢,我很清楚这个页面。正如我在博客上所说的,我不能使用代理。我将部署。我可以发出
GET
请求,问题只存在于
POSTS
。你提供的链接通常指的是这个问题,我已经采取了上面提到的所有步骤。不过,只有y
GET
s正在工作。再次感谢。除了文本的长度似乎相同外,浏览器上并没有服务器问题,但emulator上并没有。而且你们还并没有提到,若你们尝试过,任何人来到这里也应该注意到,
Access-Control-Expose-header
header也是如此。
Access-Control-Allow-Headers: Content-Type, X-Auth-Token