javascript 使用Axios修补程序请求发送FormData

5lhxktic  于 2023-01-19  发布在  Java
关注(0)|答案(1)|浏览(104)

我试图通过用nodejs构建的API更新数据库中的一些用户信息;使用axios补丁请求从html表单获取someData。
代码:

const formData = new FormData();
formData.append('key1',someData.value);
formData.append('key2',someData.value);
formData.append('key3',someData.value);

try {
  const res = await axios({ method: 'PATCH', someUrl, formData})
} catch (err) {
  log(err)
}

我正尝试使用axios补丁请求通过我的API用来自html表单的someData更新数据库中的一些用户信息。
当数据到达我的控制器时,问题#1请求主体为空。
我也试过...

data: {
 key1: formData.get('key1'),
 key2: formData.get('key2'),
 key3: formData.get('key3'),
}

问题#2上面的函数可以在axios请求中使用,但是键不一定总是相同的。我希望能够使用这个函数来更新密码、用户信息或者用户可能想要修补的其他字段。
我还声明了LET对象并清空:

let formData = {}

并将someData值的列表存储到这个空对象中。
问题#3我可以更新用户数据,但我不知道使用let变量来解决这个问题是否是个坏习惯。我觉得我可能暴露了可能被操纵的数据,因为我使用的是lET变量。
预期结果:Axios补丁请求向API发送可访问的FormData。

drkbr07n

drkbr07n1#

不知道如何用patchaxios请求发送可访问的FormData,但可以通过这种方式不使用let对象...

const data1 = someData.value
const data2 = someData.value
const data3 = someData.value

const userData = {data_key1: data1, data_key2: data2, data_key3: data3}

try {
  const res = await axios({ method: 'PATCH', someUrl, userData})
} catch (err) {
  log(err)
}

相关问题