恋上蓝白
恋上蓝白
  • 发布:2018-12-12 09:13
  • 更新:2020-12-20 07:56
  • 阅读:10588

在iphone真机运行,uni.request直接走fail函数

分类:uni-app

首先网络没问题,小程序和android真机没问题,有人知道什么原因吗?,fail函数的参数是什么对象?真机调试可以断点吗?错误信息 fail{"statusCode":0,"errMsg":"request:fail abort"}

2018-12-12 09:13 负责人:无 分享
已邀请:
3***@qq.com

3***@qq.com

如果只是报fail abort错误,试试请求地址不要用lcoalhost 或者 127.0.0.1 ,用自己电脑的ip地址请求试试
我的问题就这样解决的

  • NauyEhUe

    我的换成自己的固定ip可以了,感谢

    2019-12-24 13:18

2***@qq.com

2***@qq.com

这个问题是这样的,首先你的请求地址写的是localhost。然后你在浏览器里运行,浏览器跟你的电脑是同一台机器,当然能识别。但是你运行在手机上,手机是一台新的机器,有自己的ip,所以localhost就不管用了。这个时候需要把请求地址改成你电脑的IP,这样手机在请求的时候就能找到了

Trust

Trust - 少说废话

  • zyk2019

    报了BUG地址:https://ask.dcloud.net.cn/question/69775

    2019-04-26 23:59

1***@qq.com

1***@qq.com

请问,问题解决了,我也遇到这个问题

1***@qq.com

1***@qq.com

https 改为 http ios上就能正常请求了

  • LuxSun

    原本就是 http

    2019-03-11 19:44

LuxSun

LuxSun - 先理想的我,再我的理想!

解决了吗?

chengsenran

chengsenran

解决了嘛 我也遇到了

萌龙

萌龙

https苹果只要TLSv1.2,如果服务器不支持就会报错,

willy2358

willy2358 - 干就完了

我用iphone6 真机测试访问rest api:
···
uni.request({
url: 'https://192.168.1.6:5001/api/values',
success: (res) => {
uni.showToast({
icon: 'none',
title: JSON.stringify(res.data)
});
},
fail: (res) => {
console.log(res.errMsg);
},
});
···
进入了fail: 输出为:request:fail abort
https://192.168.1.6:5001/api/values 是我mac上的rest API,在Rest API服务器上设置了CORS允许任何域名访问
这个API在iphone6上的safari中可以访问,uni-app的chrome测试也可以,就是在iphone真机不行,求大神指点

willy2358

willy2358 - 干就完了

我的问题,从这篇http://ask.dcloud.net.cn/question/9703中,使用plus.net.XMLHttpRequest解决了

  • 6***@qq.com

    请问你XMLHttpRequest是怎么处理的,为什么还是不行

    2019-04-30 16:56

  • 优优易招

    求赐教,具体怎么设置

    2019-07-01 20:58

h***@163.com

h***@163.com - hnxulibing

碰到同样的问题。实在解决不了就要换成flutter了

6***@qq.com

6***@qq.com

请问楼主解决了么。。。

优优易招

优优易招 - 优优易招

请问有解决办法吗,各位大神

吃辣条的大妖怪

吃辣条的大妖怪 - 宝子们,现在公司没在用app开发了,纯H5开发,之后的后期有空在补笔记

遇到同样的问题了。安卓可以,就是IOS不行。

终究会弄懂

终究会弄懂

我也是这样

1***@qq.com

1***@qq.com

试试把电脑防火墙关闭,再用真机调试

9***@qq.com

9***@qq.com

真机测试url地址不要写成localhost或者127.0.0.1,要写成真实域名或者pc的ip才可以,否则调用会失败.

const DEVELPMENT_URL = 'http://aaaa.yueqizhixiang.com/api/'
const PRODUCT_URL = 'http://aaaa.yueqizhixiang.com/api/'
const BASE_URL = (process.env.NODE_ENV === 'development' ? DEVELPMENT_URL : PRODUCT_URL);

c***@163.com

c***@163.com

多数人的问题是IP不对,请把请求的IP改为手机能访问的就可以了

s***@qq.com

s***@qq.com - IT男

同样问题,IP在ios上可以访问,直接在IOS浏览器访问URL也是可以返回数据的,就是钉钉里面打开链接不行

c***@126.com

c***@126.com

我的也是同样的为题, 在H5就可以, 但是编译到手机就不行 , 不管是ios 还是 android 都不行 报{"errMsg":"request:fail abort statusCode:-1"}

let request = async (uri, data, method) => {
let token = store.state.user.token
let header = {
'Source': 'Mobile',
'content-type': 'application/json',
}
if (token) {
header['Authorization'] = token;
}

let [err, result] = await uni.request({  
    url: config.baseUrl + uri,  
    data,  
    method,  
    header  
})  
if (err != null) {  
    handle(err)  
    return  
}  
if(result.data.status == 403 || result.data.status == 410){  
    setTimeout(()=>{  
        uni.reLaunch({  
            url: '/pages/me/login'  
        })  
    })  
} else {  
    let res = verification(result)  
    if (res != undefined) {  
        return res  
    }  
}  

}

  • c***@126.com

    并且我也加了 sslVerify:false 也是不行.

    2020-12-19 18:19

4***@qq.com

4***@qq.com

服务器架设问题,手机试下能不能网页打开页面,打不开就是你服务器没架对,不要用iis express 要用真正的iis来架。

4***@qq.com

4***@qq.com

你这问题前几天我也碰上了,前几天我把方法写出来了,自己可以看下,或许有帮助。

4***@qq.com

4***@qq.com

你这问题前几天我也碰上了,前几天我把方法写出来了,自己可以看下,或许有帮助。

4***@qq.com

4***@qq.com

重要的问题说三遍,这个和uniapp 无关,和request无关,问题出在服务器上,不要用iis express架调试,iis express 改IP那种 方式只适于本地模拟器上有效,换台机器就连接不上,必须用真实的IIS服务来架服务器,域名不要墙,启动用你设置的IIS网站的域名启动才行,否则全部fail

4***@qq.com

4***@qq.com

https://ask.dcloud.net.cn/article/38263
这个是我当时遇到的问题的解决办法

该问题目前已经被锁定, 无法添加新回复