web-dev-qa-db-fra.com

axios post array data

J'essaie d'envoyer une demande de publication à un serveur sur lequel je n'ai pas beaucoup de contrôle. La seule chose que je sache, c'est que je peux obtenir la réponse correcte si je poste les données suivantes dans 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

Mais lorsque j'ai essayé de le faire via axios, il ne semble pas que les données correctes puissent être transmises. J'ai essayé

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'
    }))
.
.
.

Quelqu'un a une idée sur la façon de traduire ce type de données de tableau dans axios?

4
Rick Lee

Vous pouvez utiliser la variable axios native pour créer une demande. Vous pouvez transmettre votre charge utile avec la clé 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);
});

Vous pouvez essayer d’exécuter votre code axios depuis votre navigateur ici

2
Jefree Sujit

Je pense qu'il vous manque un symbole entre guillemets après l'URL:

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

Vous pouvez essayer ce qui suit:

    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);
    });

En outre, vous devriez bien regarder documentation axios .

0
Sotiris Kiritsis