¿Cómo envía el subprograma datos en formato de datos de formulario al backend?
Por favor 求方式 & 传参方式
, la interfaz definitivamente no es estática. Cuando se encuentre con tales requisitos, debe saber, 小程序是没有FormData对象
sí, entonces, ¿cómo operarla? ? ?
1. Código
Vaya directamente al código:
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)
}
})
El efecto es como se muestra en la figura:
2. Optimización
Como se muestra arriba, la función se implementa cuando se escribe de esta manera, pero parece que el código es demasiado feo.
2.1 Método de mezcla global:
/**
* 格式化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 Uso específico de la página
// 需要的数据
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)
}
})
El efecto es como se muestra en la figura:
Artículo de referencia:
Cómo enviar solicitudes de datos de formulario/multiparte usando wx.request