61 lines
1.4 KiB
JavaScript
61 lines
1.4 KiB
JavaScript
import {
|
|
URL,
|
|
appid
|
|
} from './url'
|
|
|
|
const request = (option) => {
|
|
return new Promise((resolve, reject) => {
|
|
// Debug request info
|
|
console.log(`发起请求: ${option.method} ${URL + option.url}`, option.data)
|
|
|
|
uni.request({
|
|
url: URL + option.url,
|
|
method: option.method,
|
|
data: option.data,
|
|
header: {
|
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
...option.headers,
|
|
'appid': appid,
|
|
'Authorization': "Bearer " + uni.getStorageSync('token'),
|
|
'Clientid': uni.getStorageSync('client_id')
|
|
},
|
|
success(res) {
|
|
// 记录响应
|
|
console.log(`请求响应: ${option.url}`, res)
|
|
|
|
// 检查响应状态码
|
|
if (res.statusCode !== 200) {
|
|
console.error(`HTTP状态码错误: ${res.statusCode}`, res.data)
|
|
|
|
// 为了适应某些服务器的异常响应,我们仍然返回数据
|
|
if (res.data) {
|
|
resolve(res.data)
|
|
return
|
|
}
|
|
|
|
reject({msg: `请求失败,状态码:${res.statusCode}`})
|
|
return
|
|
}
|
|
|
|
// 检查业务状态码
|
|
if (res.data && res.data.code !== 200) {
|
|
console.warn(`业务状态码错误: ${res.data.code}`, res.data)
|
|
|
|
// 仍然返回数据,由业务逻辑处理
|
|
resolve(res.data)
|
|
return
|
|
}
|
|
|
|
resolve(res.data)
|
|
},
|
|
fail(err) {
|
|
// 网络请求本身失败
|
|
console.error(`请求失败: ${option.url}`, err)
|
|
reject(err)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
|
|
export default request |