首先网络没问题,小程序和android真机没问题,有人知道什么原因吗?,fail函数的参数是什么对象?真机调试可以断点吗?错误信息 fail{"statusCode":0,"errMsg":"request:fail abort"}
- 发布:2018-12-12 09:13
- 更新:2020-12-20 07:56
- 阅读:10602
这个问题是这样的,首先你的请求地址写的是localhost。然后你在浏览器里运行,浏览器跟你的电脑是同一台机器,当然能识别。但是你运行在手机上,手机是一台新的机器,有自己的ip,所以localhost就不管用了。这个时候需要把请求地址改成你电脑的IP,这样手机在请求的时候就能找到了
Trust - 少说废话
http://ask.dcloud.net.cn/article/35334
提供下所使用的 HBuilderX 的版本信息,如果不是最新版请更新。
另外,提供下测试地址或测试的关键代码。
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真机不行,求大神指点
真机测试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);
我的也是同样的为题, 在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
}
}
}
NauyEhUe
我的换成自己的固定ip可以了,感谢
2019-12-24 13:18