微信小程序使用wx.request发送multipart/form-data请求的方法

前一阵子开发微信小程序功能,需要用到wx.request请求服务器接口,接口需要传递form-data参数,但是按官方文档提供的wx.request请求总是不成功。

找了些资料都说wx.request不支持,得用wx.uploadFile来实现。其实是可以的,只是没有找到正确的打开方式而已。

经过参考一些资料以及多次试验,最终解决了这个问题,特意整理一下。整个调试及解决问题的过程如下:

1、确认服务器接口是否正常。

使用postman访问服务器接口,按要求传递参数,结果返回正常,说明服务器接口没有问题。

2、通过多次调试,最终问题确定在content-type和data范围内

网上有些资料说wx.request中content-type无法使用multipart/form-data,但是尝试了application/json、application/x-www-form-urlencoded等多种方式都不行。

然而在postman中使用multipart/form-data是成功的,所以判定content-type使用multipart/form-data是正确的,问题可能是data数据的格式造成的。

3、尝试修改data数据格式,问题解决

首先,将data格式传递json对象,结果失败。

其次,将data格式传递json字符串,结果仍然失败。

最后,参考了网上一个例子,将data格式做如下拼接后问题解决:

wx.request({
url: "http://接口地址",
method: POST,
data: \r\n--XXX +
\r\nContent-Disposition: form-data; name="参数名称" +
\r\n +
\r\n + JSON.stringify(postData) +
\r\n--XXX,
header: {
content-type: multipart/form-data; boundary=XXX
},
success: function(res) {
//参数值为res.data,直接将返回的数据传入
        doSuccess(res.data);
},
fail: function(res) {
doFail(res);
}
})

微信小程序使用wx.request发送multipart/form-data请求的方法

原文:https://blog.51cto.com/u_7034817/2833213

(0)
(0)
举报
评论 一句话评论(0
登录后才能评论!
以上是微信小程序使用wx.request发送multipart/form-data请求的方法的全部内容。
THE END
分享
二维码

)">
< <上一篇
)">
下一篇>>