Axios在参数名称的末尾添加[]

时间:2019-12-16 23:57:45

标签: javascript vue.js axios

我将vuejsaxiosDjango用作服务器。 Django需要参数travelers,但是当我使用travelers发送axios时,它会在末尾添加[],因此它是travelers[]

我该如何停止?

这是我的代码的示例示例。

VueJS实例中,我有

data = {
        filter:{
            travelers:[],
            order:...,
...

变量travelers可以是ID数组或空数组。如您所见,我定义的是travelers,而不是travelers[],但它是用[]发送的。

是这个功能:

loadOrders: function () {
                        axios.get(this.list_orders_url, {
                            params: this.filter
                        }).then(function (response) {
                            app.orders = response.data;
                        }).catch(function (error) {
                            console.log(error); // todo
                        })
                    },

从字面上看,它将travelers[]=1&travelers[]=2添加到查询字符串。

1 个答案:

答案 0 :(得分:0)

您必须在paramsSerializer属性中指定序列化逻辑才能使工作正常:) 在此示例中,我使用了query-string,但是您可以随意使用任何其他模块或自定义方法。

const queryString = require('query-string');

loadOrders: function () {
                        axios.get(this.list_orders_url, {
                            params: this.filter,
                            paramsSerializer: params => queryString.stringify(params)
                        }).then(function (response) {
                            app.orders = response.data;
                        }).catch(function (error) {
                            console.log(error); // todo
                        })
                    },