今天遇到了ionic
在iOS
端请求数据HTTP
状态码为0的情况, 记录一下解决过程。
首先是一个跨域请求问题, (后端)主要是由两部分组成, 一部分是对OPTION
请求的手动处理, 另一部分则是设置跨域请求头。我们可以通过两个网关过滤器来解决这个问题。
1 |
|
因为我们的请求都是POST
请求方式, 所以设置跨域请求头的时候在这一步:
1 |
|
过滤器配置到这里就结束了, 但是一开始的时候会出现请求立刻失败的情况, 加上了(不过后来这个问题又消失了, 待验证)ribbon
配置可解决此问题
1 |
|
至此所有的跨域配置都已经完成, pc
端和Android
端可以正常请求数据, 唯独在iOS
上不能正常请求数据, 请求可以发送, 但HTTP的状态码是0, 后来我在本地调试了一下发现请求过网关的时候出线了以下错误:
1 |
|
然后下面还有一行
1 |
|
网上解决这个问题有很多种办法。。。但是我最终的到有效的解决办法是下面两个, 一个是设置ribbon
:
1 |
|
还需要引入一个依赖:
1 |
|
上面的两个缺一不可, 否则网关层还是会报错的。