活泉
活泉
  • 发布:2020-09-04 10:43
  • 更新:15 小时前
  • 阅读:19505

uniapp使用uni.request请求报错{"errMsg":"request:fail abort statusCode:-1"}的解决办法

分类:uni-app

问题呈现

在uniapp中,使用uni.request()向服务端接口发起请求后,返回值为:{"errMsg":"request:fail abort statusCode:-1"},因此,导致了后面的业务代码报错

前提

检查了uni.request()根据服务端接口需要的配置(如:url、data、header、method等)都没有问题

问题出现的可能原因

在以上前提下还出现这种问题,最有可能的原因:手机没有连网,或者看着连上了网但实际网络不可用,可以在手机浏览器中随便输入点文字搜一下测试看看,能不能搜到新内容。

仔细查看,这个{"errMsg":"request:fail abort statusCode:-1"}返回值,其实并不是服务端返回来的,因为请求都完全没有到服务端

解决办法

在执行uni.request()向服务端请求前,使用uni.getNetworkType()和uni.onNetworkStatusChange()对网络进行监听,如果监听到当前设备是处于无网络的状态时,就不执行uni.request()请求,而是弹出一个弹框或者消息提示,提醒用户:“当前设备断网了,请检查网络后重试”

注:以上是根据我本人实际遇到这个问题后的解决办法,也是在这个坑里吃了不少苦,分享出来,希望给大家提供参考,若解决了你的问题,不要钱,请点一下赞!因为分享经验需要去组织语言、编辑文字,这个过程其实是需要花精力花时间的,因此,创作不易,分享不易!

0 关注 分享

要回复文章请先登录注册

1***@qq.com

1***@qq.com

请求header添加或者改成 header['content-type'] 为 application/x-www-form-urlencoded 可以解决
15 小时前
1***@qq.com

1***@qq.com

请检查一下自己请求的header里是否包含中文,新版的编译器上中文会有问题,请求会失败
2022-08-01 16:11
w***@163.com

w***@163.com

发送请求之前直接cmd,看下ipconfig,看下自己的局域网ip,必须一致才行,那个ip一般来说是动态分配,但是也可固定。
比这个更源头一点 sslVerify:false
2022-03-06 10:11
Nicole0724

Nicole0724

回复 z***@126.com :
怎么解决的呢?
2022-02-22 10:43
z***@126.com

z***@126.com

回复 c***@163.com :
时间问题。你看下手机时间和电脑时间是否是一致的。时间相差太大。就会报错。无论是真机模拟还是线上都会有这个问题。花了一个小时找到的解决的方法,也解决了问题。
2021-11-12 17:04
c***@163.com

c***@163.com

回复 1***@qq.com :
你好,请问你解决了吗,我遇到和你一样的问题
2021-07-05 16:41
awocaoa

awocaoa

遇到同样问题
仅在初次启动时会出现,并且是必现 (iOS下,安卓没试过)

重现方法:关闭模拟器,用hb编译重新启动模拟器,启动后请求会报错,重试又正常请求了

确认服务器接口没问题。
2021-03-22 11:19
活泉

活泉 (作者)

回复 1***@qq.com :
其实,这个报错并不是服务器返回的错误,因为都没有请求到服务器
2021-03-21 15:15
1***@qq.com

1***@qq.com

我们好多个测试服务器,只有一个测试服务器会不时的报这个错!我怀疑是服务器的问题
2021-03-18 09:28
1***@qq.com

1***@qq.com

我们好多个测试服务器,只有一个测试服务器会时的报中国错!我怀疑是服务器的问题
2021-03-18 09:27