{errMsg:"request:fail request protocol must be http or https”errno:600005}
小程序模拟器正常使用,体验版报错,目前出现报错的机型有(华为鸿蒙系统,小米红米安卓系统),我的协议是正常的,请求的域名也配置了
使用的框架是uniapp,目前报错主要出现在微信小程序,
request代码片段
import {baseUrl} from './operate.js'
// import store from '../store/index.js'
export default class Request {
http(param) {
// 请求参数
var url = param.url,
method = param.method,
header = {
...param.header,
// #ifdef MP-WEIXIN
"source": 1,
// #endif
// #ifdef MP-ALIPAY
"source": 2,
// #endif
'content-type': "application/json",
'Applet-Authorization': uni.getStorageSync('token')
},
data = param.data || {},
token = param.token || "",
hideLoading = param.hideLoading || false;
//拼接完整请求地址(根据环境切换)
var requestUrl = baseUrl() + url;
if (method) {
method = method.toUpperCase(); //小写改为大写
}
//加载圈
if (!hideLoading) {
uni.showLoading({
title: '加载中...'
});
}
// 返回promise
return new Promise((resolve, reject) => {
console.error(requestUrl)
// 请求
uni.request({
url: requestUrl,
data: data,
method: method,
header: header,
success: (res) => {
if (res.statusCode && (res.statusCode != 200 || res.data.code !== 200)) {
uni.showToast({
title: "api错误:" + res.data.msg,
icon: 'none'
});
return;
}
resolve(res.data)
},
//请求失败
fail: (e) => {
console.error('api报错:')
console.error(e)
console.error('请求URL:'+requestUrl)
setTimeout(()=>{
uni.showToast({
title: "" + e.errMsg||e.data.msg,
icon: 'none'
});
})
resolve(e.data);
},
//请求完成
complete() {
//隐藏加载
if (!hideLoading) {
console.log('complete')
uni.hideLoading();
}
resolve();
return;
}
})
})
};
get(param){
return new Promise((resolve, reject) => {
this.http({
...param,
method: 'GET'
}).then((res)=>{
resolve(res)
}).catch((err)=>{
reject(err)
})
})
};
post(param){
return new Promise((resolve, reject) => {
this.http({
...param,
method: 'POST'
}).then((res)=>{
resolve(res)
}).catch((err)=>{
reject(err)
})
})
}
}
怎么解决的?