axios post数组数据

时间:2017-07-13 05:42:01

标签: javascript reactjs http axios

我正在尝试将post请求发送到服务器,我对它没有多少控制权。我唯一知道的是,如果我在Postman中发布以下数据,我可以获得正确的答案

x-www-form-urlencoded radio button checked

Entered the following 2 array data:
    product_id_list[]          pid1234
    product_id_list[]          pid1235

Header - Content-Type: application/x-www-form-urlencoded

Method: Post

但是当我试图通过axios进行时,似乎没有正确的params数据可以通过。我试过了

axios.post('https://test.com/api/get_product,
    querystring.stringify({
      'product_id_list': ['pid1234', 'pid1235']
    }))
.
.
.
axios.post('https://test.com/api/get_product,
    querystring.stringify({
      'product_id_list[]': 'pid1234',
      'product_id_list[]': 'pid1235'
    }))
.
.
.

有人知道如何在axios中翻译这种类型的数组数据吗?

6 个答案:

答案 0 :(得分:2)

您可以使用原生axios来创建请求。您可以使用data密钥传递有效负载。



import axios from 'axios';

let payload = {
  product_id_list: ['pid1234', 'pid1235']
};

axios({
  url: 'https://test.com/api/get_product',
  method: 'post',
  data: payload
})
.then(function (response) {
    // your action after success
    console.log(response);
})
.catch(function (error) {
   // your action on error success
    console.log(error);
});




您可以尝试从浏览器here运行axios代码。

答案 1 :(得分:2)

这个问题也对我突然出现,我用new FormData()解决了这个问题。

具有数组:

const product_id_list = ['pid1234', 'pid1235']

const bodyFormData = new FormData();

product_id_list.forEach((item) => {
    bodyFormData.append('product_id_list[]', item);
});

axios.post('https://test.com/api/get_product', bodyFormData)

以这种方式进行操作时,它以application / x-www-form-urlencoded的形式发送了请求,并在正文中发送了正确的数据。

答案 2 :(得分:0)

您可以尝试以下操作:

    var payload = {
            product_id_list: [
                'pid1234',
                'pid1235'
              ]
    };

    axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
    payloaxios.post('https://test.com/api/get_product', payload)
      .then(function (response) {
        console.log(response);
    })
    .catch(function (error) {
        console.log(error);
    });

另外,你应该好好看看axios documentation

答案 3 :(得分:0)

我认为您在网址后缺少单引号:

axios.post('https://test.com/api/get_product', {
  product_id_list: ['pid1234', 'pid1235']
})

答案 4 :(得分:0)

        $.ajax({
            type: "POST",
            url: "proceso.php",
            data: {'array': array,'array2': array2},     
            success: function(data){
                console.log(data);
            }
        });

答案 5 :(得分:0)

您可以使用 'Content-Type': 'application/json' 标头发送您的帖子请求(如果服务器可以处理)

const productList = [1, 2, 3, 4]

const data = JSON.stringify({product_list: productList})
const config = {
    headers: {'Content-Type': 'application/json'}
}

return axios.post('api/url', data, config)