先告诉你解决方式吧,
如果你的写法是这样
{
'content-type':'application/x-www-from-urlencoded',
}
请将这货改成
{
'content-type':'multipart/form-data; boundary=XXX',
}
然后正常的请求是应该是这样的
wx.request({
url: "www.baidu.com",
data: {
'key1':'value1',
'key2':'value2',
},
method: "POST",
header: {
"Content-Type": "application/json"
},
success: (res) => {
},
fail: (res) => {
},
complete: (res) => {
}
})
改动
然后我们要改data,和header 格式都不一样了,以前是对象,现在可是字符串,
// 我们简写一下,不然篇幅太长了
wx.request({
data:"key1=value1&key2=value2"
header:{
'content-type':'multipart/form-data; boundary=XXX',
}
})
这样就可以请求成功了,
但是有个问题 data 一定要注意:value1 虽然是字符串,但有的字符串是有 符号的 , 比如 =
,比如 算了,看下图
我们的格式 本来是 key=value&key=value&& ,遇上这种带符号的字符串是不是就识别不出来了?
所以我们要转义
定义函数
//这是转义函数
function JSON_to_URLEncoded(element,key,list){
var list = list || [];
if(typeof(element)=='object'){
for (var idx in element)
JSON_to_URLEncoded(element[idx],key?key+'['+idx+']':idx,list);
} else {
list.push(key+'='+encodeURIComponent(element));
}
return list.join('&');
}
调用
//调用就是这样比较简单
var body = {
'key1':'value1',
'key2':'value2',
}
var data = JSON_to_URLEncoded(body)
//请求
wx.request({
data:data
....
解决~~~~
参考,
https://www.cnblogs.com/saving/p/9943554.html
很像对吧?
除了
content-type
都一样
反正我全抄没解决掉问题。不信你们试试,我的我可以,小程序。
解决经历
你了解不?
我的方向是android,小程序也就不咋会,勿拍砖
写第一个接口,请求不通? 然后,后端说你的请求头header
应该改成这样!
{
'content-type':'application/x-www-from-urlencoded',
}
我们知道小程序
默认的方式是:
{
"Content-Type": "application/json"
}
我们看到有的大写
有的小写
,还有的是双引号
随便啦,反正我懒得统一。怎么写都行,只要单词对哈
试错啦 开始
明天再写 ,下班了。。。