旧款安卓手机,在请求url带有中文时,会出现请求400的问题
//用encodeURI 转一下中文部分
let url = Url + "?reason=" + encodeURI(data.reason)
仔细检查自己的代码,没有问题呀!在看看后台,也没有问题啊,为什么就会保存呢?接下来就是我亲自的爬坑经验。
问题出在哪了呢?编码格式!!!
将wx.request请求中的
'Content-Type': 'application/json;
//改为
'Content-Type': 'application/json;charset=UTF-8;'
//如果还不行再改:
'Content-Type': 'application/x-www-form-urlencoded'
代码如下:
// HTTP请求
const http = (uri, method, params) => {
// let url = CTX + uri;
let url = CTX + encodeURI(uri);
console.log(uri,encodeURI(uri));
params = params ? params : {};
return new Promise(function(resolve, reject) {
wx.request({
url: url,
method: method,
data: params,
header: {
// 'content-type': 'application/x-www-form-urlencoded;charset=utf-8',
// 'Content-Type': 'application/json;charset=UTF-8',
// 'Content-Type': 'application/x-www-form-urlencoded',
// 'Content-Type': 'application/x-www-form-urlencoded',
'Content-Type': 'json',
'uuid': wx.getStorageSync('uuid'),
},
success(res) {
if (res.data.status === 0) {
resolve(res.data);
} else if (res.data.status === -1) {
processError(res.data);
reject(res.data);
} else {
processError(res.data);
reject(res.data);
}
},
fail(res) {
wx.showToast({
title: '网络错误',
icon: 'none',
duration: 2000
})
}
})
})
}
// HTTP/GET请求
const httpGet = (uri, params) => {
return http(uri, 'GET', params);
}