J'ai un code qui exécute sur la soumission d'un formulaire. Il publie un itinéraire API.
handleSubmit = async () => { try { const response = await fetch(`${API_URL}/project`, { method: "post", body: JSON.stringify({ name: this.state.name, description: this.state.description }), headers: { "Content-Type": "application/json" } }); return response ? response.json() : response; } catch (error) { console.log(error) } };
3 Réponses :
Le problème que vous êtes confronté est que la réception d'un 404 n'est pas une exception. Pour gérer cela, vous devez ajouter du code qui vérifiera le code d'état de la réponse et de là déterminera ce qui devrait être fait. Par exemple, vous recevriez la réponse et utilisez ce qui suit:
if(response.status >= 200 && response.status <= 299) //Code to run when you receieve a good response
Si vous souhaitez rejeter les réponses non 20X et que vous avez déjà une logique commerciale pour gérer l'erreur sur Votre code code> Catch CODE>, vous pouvez lancer une nouvelle erreur et la gérer à côté d'une autre erreur: p> FETCH code> soulève uniquement une erreur s'il y a eu une erreur ou recevant la réponse. Un HTTP 404 doit être traité comme une réponse "réussie" et est à la hauteur de décider quoi faire avec une telle réponse.
Si vous avez besoin d'une erreur spécifique à une erreur spécifique, vous devez suivre en bas:
handleSubmit = () => { fetch(`${API_URL}/project`, { method: "post", body: JSON.stringify({ name: this.state.name, description: this.state.description }), headers: { "Content-Type": "application/json" } }).then((response) => { return response ? response.json() : response; }).catch((error) => { console.log(`fetch specific error: ${error}`) }); };
Avez-vous essayé de vérifier le trafic réseau pour voir ce que vous recevez? Un 404 Je ne crois pas ne sera considéré comme une exception, ce serait une réponse dont vous avez besoin pour vérifier par exemple
Oui, je récupère un 404: alors ce qui serait considéré comme une exception?
Une exception est un objet spécifique créé en fonction du code qui n'a pas été exécuté comme prévu. Un 404 n'est pas inattendu dans le code, donc essentiellement de ce que vous devez faire est de vérifier le code d'état de réponse et de voir s'il est égal à 404, puis gérez la manière dont votre souhait de là. Vous voudrez peut-être inclure d'autres statuts là aussi, quelque chose comme un 200 pourrait être la seule réponse valide par exemple