Fetch et Axios sont très similaires en termes de fonctionnalités, mais pour une meilleure compatibilité ascendante, Axios semble mieux fonctionner (fetch ne fonctionne pas dans IE 11 par exemple, vérifiez ce poste )
Par ailleurs, si vous travaillez avec des requêtes JSON, voici quelques différences sur lesquelles je suis tombé.
Récupérer la requête post JSON
let url = 'https://someurl.com';
let options = {
method: 'POST',
mode: 'cors',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=UTF-8'
},
body: JSON.stringify({
property_one: value_one,
property_two: value_two
})
};
let response = await fetch(url, options);
let responseOK = response && response.ok;
if (responseOK) {
let data = await response.json();
// do something with data
}
Demande de post JSON d'Axios
let url = 'https://someurl.com';
let options = {
method: 'POST',
url: url,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=UTF-8'
},
data: {
property_one: value_one,
property_two: value_two
}
};
let response = await axios(options);
let responseOK = response && response.status === 200 && response.statusText === 'OK';
if (responseOK) {
let data = await response.data;
// do something with data
}
Donc :
- Fetch's corps \= Axios' données
- Le corps de Fetch doit être stringifié Les données d'Axios contiennent les objet
- Aller chercher n'a pas d'url dans l'objet de la demande, Axios a url dans l'objet de la demande
- La fonction de demande de récupération comprend la url comme paramètre , fonction de demande d'Axios n'inclut pas l'url comme paramètre .
- La demande de recherche est ok lorsque l'objet de la réponse contient le propriété ok La demande d'Axios est ok quand le statut est 200 y statusText est 'OK'.
- Pour obtenir la réponse de l'objet json : dans fetch, appelez la fonction Fonction json() sur l'objet de réponse, dans Axios obtenir propriété des données de l'objet de la réponse.
6 votes
Je pense que ce sujet a été discuté en détail sur github.com/mzabriskie/axios/issues/314
1 votes
Bien qu'il y ait beaucoup de réponses, je trouve que personne ne mentionne le délai d'attente de la demande qu'axiso a sur fetch.