場(chǎng)景
向服務(wù)端發(fā)起POST請(qǐng)求時(shí),有些接口的參數(shù)需要以 FormData 形式傳遞。
小程序中沒有FormData對(duì)象,使用 let formdata = new FormData() 創(chuàng)建對(duì)象,會(huì)報(bào)錯(cuò) FormData is not defined
let formdata = new FormData()
formdata.append('a', 1)
formdata.append('b', 2)
// ReferenceError: FormData is not defined
解決方案
1、配置請(qǐng)求頭header: ‘content-type’: ‘a(chǎn)pplication/x-www-form-urlencoded; charset=UTF-8’
2、參數(shù)修改為 字符串拼接形式:a=1&b=2
uni.request({
url: '接口地址',
method: 'POST',
data: `a=1&b=2`,
header: {
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
success: res => {
// do something
},
fail: err=> {}
})
代碼示例
小程序中 request 請(qǐng)求一般都會(huì)進(jìn)行全局封裝,如果直接在封裝函數(shù)中設(shè)置 header 會(huì)影響其他接口的調(diào)用
可以在需要使用 FormData 形式傳參的api中設(shè)置 header,通過參數(shù)進(jìn)行傳遞
api.js文章來源:http://www.zghlxwxcb.cn/news/detail-633024.html
import { request } from '@/utils/request.js'
export function test(data) {
return request({
header: {
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
url: '接口地址',
method: 'post',
data
})
}
request.js文章來源地址http://www.zghlxwxcb.cn/news/detail-633024.html
export const request = options => {
return new Promise((resolve, reject) => {
uni.request({
url: `${process.env.config.requestURL}${options.url}`,
method: options.method || 'GET',
data: options.data || {},
timeout: 60000,
header: {
...options.header
},
success: res => resolve(res),
fail: err => reject(err)
})
})
}
到了這里,關(guān)于小程序 POST 請(qǐng)求傳遞 FormData 格式參數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!