Vraag Voorkom niet-verwerkte jQuery AJAX-fout


Ik weet hoe ik servergegevens of fouten kan ontvangen. Er zijn veel manieren. Bijvoorbeeld:

$.ajax({
    type: "get",
    url: "/widgets/",
    success: function (data, text) {
        console.log('this is a data');
    },
    error: function (request, status, error) {
        console.log('this is an error');
    }
});

Zie deze afbeelding:

result in chrome developer console

Ik heb mijn foutfunctie en ik doe wat ik daar nodig heb. Hoe kan ik fouten in de eerste regel voorkomen. Ik heb 4xx en 5xx fouten getest, maar geen verschil. Ik weet dat de eindgebruiker deze fout niet ziet wanneer de ontwikkelaarsconsole is verborgen.

Ik heb dit nodig om een ​​API te ontwerpen. Ik weet dat ik 200 reacties van de server kan verzenden met een extra argument waaruit blijkt dat dit een fout of een succesresultaat is.

Maar als ik 4xx of 5xx-antwoorden kan verzenden, is er geen reden om extra te argumenteren. Op deze manier heb ik wat extra voordelen voor mij. Ik kan bijvoorbeeld succesresultaten toepassen op mijn client-side-modellen zonder me zorgen te maken over extra argumenten.

Dank je


30
2018-05-10 11:49


oorsprong


antwoorden:


AFAIK je kunt de rode dingetjes niet laten verdwijnen, wanneer je foutstatuscodes retourneert (4xx, 5xx). Ze worden door de browser gebruikt om aan te geven dat iets niet is verlopen zoals verwacht. Toch zijn dit slechts decoraties, aangezien 4xx en 5xx statuscodes perfect geldig zijn, dus ik zie geen reden waarom je ze wilt verwijderen.

Zoals je zelf zei, zou je andere alternatief sturen "200 antwoorden van de server met een extra argument dat laat zien dat dit een fout of een succesresultaat is".

Ik raad echter zeker aan om de 4xx- en 5xx-codes te gebruiken (dat is waarvoor ze zijn ontworpen) en niet langer zorgen te maken over de heads-up-waarschuwingen van de browser in de ontwikkelaarsconsole (oftewel rode dingetjes).

Zie ook deze en deze vragen die naar soortgelijke fouten verwijzen bij het ophalen van andere soorten bronnen (afbeeldingen, bestanden, enz.). De fouten die u ziet, zijn eigenlijk van dezelfde aard.


12
2018-05-10 13:54