Ist es möglich, $.getJSON()
Funktion erzwingen, um einen Fehler zu erzeugen, wenn wir versuchen, HTML mit ihm zu bekommen (nicht application/json
). Es sieht so aus, als ob dieses deferred nur ein leeres Objekt zurückgibt (oder erledigt).
Wie können wir in then
Handler finden, die content-type
wurde als Reaktion verarbeitet? Ich habe die Situation, wenn Server HTML anstelle von JSON zurückgeben kann, wenn der Dienst nicht verfügbar ist.
warum Sie nicht nur eine Ausnahme in dem Handler werfen, wenn die Antwort dann leer ist? –
Es ist eigentlich ziemlich einfach, wenn der Status 20x ist und die Antwort von $ .parseJSON erfolgreich geparst werden kann, wird es als erfolgreich angesehen. Es ignoriert den Inhaltstyp, weil Entwickler oft vergessen, es zurückzugeben. Sie sollten auf Null in .then testen und die Versprechung veranlassen, zurückzuweisen, wenn es null oder leerer String ist (oder den Server repariert) –