gpt4 book ai didi

javascript - 如何强制 axios 发送空数组?

转载 作者:行者123 更新时间:2023-12-05 06:19:48 25 4
gpt4 key购买 nike

我从 vue.js 应用程序 PATCH 方法发送带有 axios 的整数数组。

如果有值,则按预期传递数据。

但如果没有(例如,从多选中删除所有项目),则有效负载为空。我需要发送它,以便可以从数据库中删除项目,这是一个非常正常的用例。

我的更新方法如下:

 update({ commit, dispatch }, data) {
return new Promise((resolve, reject) => {
const params = {};
params[data.name] = data.value;
console.log(params)
axios({ url: '/api/' + module + '/' + data.id, params, method: 'PATCH' })
.then(response => {
//Replace the full object in the store with the one we get back from the patch operation
commit('update', response.data.data);
dispatch('postUpdate', data)
resolve(response)
})
.catch(err => {
reject(err)
})
})

我的 console.log 确认参数数组是我期望的方式

Object { data_items: [] }

但是网络请求显示它正在被删除并且没有发布任何内容。

我还可以确认,当我选择任何值时,请求会按预期工作并发送到服务器以进行持久化。

例如

请求填充选择 http:///api/processes/16?data_items[]=2

请求清空选择 - 无查询参数 http://example.com/api/processes/16

如何强制 axios 发送空数组?

最佳答案

使用 querystring的 stringify 作为序列化程序并将空字符串添加到空列表对我有用。

例如

const queryObject = {myList: myList.length > 0 ? myList : ['']}


return axios.get(url, {params: queryObject, paramsSerializer: querystring.stringify}).then(...)

然后url变成了http://example.com?myList=我的后端将其解释为接收到 myList 查询参数的空列表。

关于javascript - 如何强制 axios 发送空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60682549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com