小程序 fromdata 请求方式,Content-Type:application/x-www-from-urlencoded,表单

先告诉你解决方式吧,

如果你的写法是这样

{
      '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" 
}

我们看到有的大写有的小写,还有的是双引号 随便啦,反正我懒得统一。怎么写都行,只要单词对哈

试错啦 开始


明天再写 ,下班了。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值