uni-app -- - - - アプレットはどのようにしてデータをフォーム データ形式でバックエンドに送信しますか

アプレットはどのようにしてデータをフォーム データ形式でバックエンドに送信しますか

求方式 & 传参方式インターフェイスは決して静的ではありません。そのような要件に遭遇した場合、それをどのように操作するのかを知っておく必要があります小程序是没有FormData对象? ?

1. コード

コードに直接移動します。

wx.request({
    
    
	url: 'https://****.**.com',
	method: 'POST',
	header: {
    
    
		'content-type': 'multipart/form-data; boundary=XXX'
	},
	data: '\r\n--XXX' +
		'\r\nContent-Disposition: form-data; name="key1"' +
		'\r\n' +
		'\r\nvalue1' +
		'\r\n--XXX' +
		'\r\nContent-Disposition: form-data; name="key2"' +
		'\r\n' +
		'\r\nvalue2' +
		'\r\n--XXX--',

	success: (res) => {
    
    
		console.log('接口返回值 => ', res)
	}
})

効果は次の図に示すとおりです。
ここに画像の説明を挿入

2. 最適化

上のように、このように書くと機能は実現しますが、コードがダサすぎるようです

2.1 グローバル混合方法:

/**
 * 格式化formData数据
 */
formdata(obj = {
     
     }) {
    
    
	let result = ''
	for (let name of Object.keys(obj)) {
    
    
		let value = obj[name];
		result +=
			'\r\n--XXX' +
			'\r\nContent-Disposition: form-data; name=\"' + name + '\"' +
			'\r\n' +
			'\r\n' + value
	}
	return result + '\r\n--XXX--'
}

2.2 特定のページの使用

// 需要的数据
let obj = {
    
    
	'key1': 'value1',
	'key2': 'value2'
}
wx.request({
    
    
	url: 'https://www.jiuwa.net/tools/api.php?type=cbwm',
	method: 'POST',
	header: {
    
    
		'content-type': 'multipart/form-data; boundary=XXX'
	},
	data: this.formdata(obj), // 使用mixin混入的方法
	success: (res) => {
    
    
		console.log('结果', res)
	}
})

効果は次の図に示すとおりです。
ここに画像の説明を挿入



参考記事:
wx.requestを使用してmultipart/form-dataリクエストを送信する方法

おすすめ

転載: blog.csdn.net/Dark_programmer/article/details/130703304