294 votes

Axios Demande de suppression avec corps et en-têtes?

Je suis à l'aide d'Axios, tandis que la programmation en ReactJS et je fais semblant d'envoyer une demande de SUPPRESSION de mon serveur.

Pour ce faire j'ai besoin de les en-têtes:

headers: {
  'Authorization': ...
}

et le corps est composé de

var payload = {
    "username": ..
}

J'ai été à la recherche dans l'inter-réseaux trophiques et seulement constaté que la SUPPRESSION de la méthode nécessite un "param" et n'accepte pas de "données".

J'ai essayé de l'envoyer comme suit:

axios.delete(URL, payload, header);

ou même

axios.delete(URL, {params: payload}, header);

Mais rien ne semble fonctionner...

Quelqu'un peut-il me dire si c'est possible (je présume que c'est) pour envoyer une demande de SUPPRESSION à la fois avec les en-têtes et le corps, et comment le faire ?

Je vous remercie à l'avance!

411voto

vishu2124 Points 545

Donc, après un certain nombre d'essais, j'ai trouvé que cela fonctionnait.

Veuillez suivre la séquence de commande, il est très important sinon cela ne fonctionnera pas

 axios.delete(URL, {
  headers: {
    Authorization: authorizationToken
  },
  data: {
    source: source
  }
});
 

249voto

tarzen chugh Points 3276

axiox.delete prend en charge un corps de demande. Il accepte deux paramètres: url et configuration facultative. Vous pouvez utiliser config.data pour définir le corps et les en-têtes de réponse comme suit:

 axios.delete(url, { data: { foo: "bar" }, headers: { "Authorization": "***" } });
 

Voir ici - https://github.com/axios/axios/issues/897

218voto

Van_Paitin Points 437

Voici un bref résumé des formats requis pour envoyer des différents verbes http avec axios:

  • GET: Deux façons

    • Première méthode

    axios.get('/user?ID=12345')
      .then(function (response) {
        // Do something
      })
    
     
    • Deuxième méthode

    axios.get('/user', {
        params: {
          ID: 12345
        }
      })
      .then(function (response) {
        // Do something
      })

Les deux ci-dessus sont équivalentes. Observer l' params mot-clé dans la deuxième méthode

  • POST et PATCH

axios.post('any-url', payload).then(
  // payload is the body of the request
  // Do something
)

axios.patch('any-url', payload).then(
  // payload is the body of the request
  // Do something
)
  • DELETE

axios.delete('url', { data: payload }).then(
  // Observe the data keyword this time. Very important
  // payload is the request body
  // Do something
)

La clé de la vente à emporter

  • get des demandes éventuellement besoin d'un params - clés afin de définir correctement les paramètres de la requête
  • delete des demandes avec un corps en a besoin pour être mis sous une data clé

25voto

Oluwafemi Sule Points 8706

axios. delete reçoit une URL et une configuration facultative .

axios.delete (url [, config])

Les champs disponibles pour la configuration peuvent inclure les en-têtes .

Cela permet d'écrire l'appel de l'API comme suit:

 const headers = {
  'Authorization': 'Bearer paperboy'
}
const data = {
  foo: 'bar'
}

axios.delete('https://foo.svc/resource', {headers, data})
 

9voto

ronara Points 203

J'ai eu le même problème que je l'ai résolu comme ça:

 axios.delete(url, {data:{username:"user", password:"pass"}, headers:{Authorization: "token"}})
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X