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