Dans mon document que j'ai ce script:
$.ajax({ type:"POST",url:"ajax.php",data:data,
success: function() {
//onsuccess
},
error: function() {
//onerror
}
});
Comment puis-je, dans le document ajax.php
, délibérément jeter une erreur? Est-il suffisant de simplement lancer un code d'état HTTP 400 ou quelque chose? (Et si c'est le cas, 400 est-il le bon?)
Pourquoi je demande est que je veux utiliser ceci pour soumettre un formulaire au serveur, et si un champ n'est pas rempli correctement je veux alerter l'utilisateur à travers le paramètre d'erreur dans $.ajax
. Je sais que je pourrais le faire en utilisant javascript en premier lieu, mais j'espère que je pourrais le faire de cette façon (donc je ne dois pas écrire la vérification deux fois). Mais bien sûr, en faisant cela, je ne peux pas séparer les différents champs de l'autre.
Sur la base de ce que je veux l'utiliser pour, puis-je en quelque sorte lancer une « erreur personnalisée », donc si le champ name
n'a pas été rempli correctement, il retourne le nom du champ (c.-à-name
). Est-il suffisant pour faire quelque chose comme ceci:
En ajax.php:
if (isFilledOutProperly($name) == false) {
echo "name";
}
else {
echo "success";
}
Et:
success: function(data) {
if (data == 'name') {
//error
}
else {
//success
}
},
je peut-être sur la mauvaise voie, mais si quelqu'un a une meilleure suggestion sur comment je peux le faire, s'il vous plaît dites-moi. Merci!
Selon le principe REST, la réponse à une requête POST avec HTTP 200 signifie que la ressource a été créée avec succès. Vous pouvez répondre avec un HTTP 400 et également fournir des informations détaillées sur l'erreur au format text/html/json/xml. – Leventix
Je sais cela, mais comme je le demandais: je peux délibérément jeter la partie "erreur" de $.ajax() 'en forçant une erreur HTML? – Eikern
Oui, si vous répondez avec autre que HTTP 2xx, la partie "erreur" sera appelée. – Leventix