javascript axios post阵列数据

u4dcyp6a  于 2023-05-05  发布在  Java
关注(0)|答案(6)|浏览(129)

我试图发送后请求到一个服务器,我没有太多的控制它。我唯一知道的是,如果我在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来做的时候,似乎正确的参数数据不能通过。我试过了

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中转换这种类型的数组数据吗?

k3bvogb1

k3bvogb11#

我也遇到了这个问题,我用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发送给它,并在主体中发送正确的数据。

mv1qrgav

mv1qrgav2#

您可以使用本机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代码。

kqlmhetl

kqlmhetl3#

你可以用'Content-Type': 'application/json'头发送你的post请求(如果服务器可以处理的话)

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)
ercv8c1e

ercv8c1e4#

您可以尝试以下操作:

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

new9mtju

new9mtju5#

你也可以在axios中发送一个带有FormData的对象数组-

let full_name = this.state.full_name;
let phone_no = this.state.phone_no;
let carts = [
       { product_id: 1, quantity: 10, ...}, 
       { product_id: 2, quantity: 5, ...}, 
     ]
let orderFormData = new FormData();
orderFormData.append('full_name', full_name);
orderFormData.append('phone_no', phone_no);

//Just stringify carts array
orderFormData.append('carts', JSON.stringify(carts));

const headers = {
  'Content-Type' : 'application/json',
  'Accept' : 'application/json',
};

axios.post(url, orderFormData, {headers: headers})
  .then(function (res) {
    console.log(res);
  })
  .catch(function (error) {
    console.log(error)
  })

**从后端,你可以从你的请求得到它。如果你使用的是Laravel,那么你可以使用-**获取购物车数据

  • json_decode($request-〉carts);*

这将返回你用axios发送的确切数组。

uxhixvfz

uxhixvfz6#

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

相关问题