2013-10-03 16 views
5

Używam jquery.getJSON(), ale nie wiem jak zrobić obsługę błędów. A oto niektóre sytuacje, z którymi muszę sobie poradzić.Obsługa błędów jquery.getJSON()

1) co, jeśli zwrócone dane są zerowe?

2) co zrobić, jeśli zwrócone dane nie są analizowane przez json?

3) co, jeśli pojawi się komunikat o błędzie? Na przykład serwer zwrócił HTTP ERROR

Odpowiedz

8

Ponieważ $.getJSON() zwraca obiekt obietnica uou można użyć zwrotnego .fail() obietnica dla przypadku 2 i 3 ... Przypadek 1 musi być obsługiwane w zwrotnego sukces samego

jQuery.getJSON(...).fail(function(jqXHR, status, error){ 
    if(status == 'parseerror'){ 
     //not valid json 
    } else { 
     //some other error 
    } 
}) 
+0

nie otrzymam 'status == 'parseerror'', jeśli zwróconych danych nie można sparsować, status będzie" parseerror "? – Cacheing

+0

@Cacheing tak spójrz na dokumentację [$ .ajax()] (http://api.jquery.com/jQuery.ajax/) dla 'błędu' wywołania zwrotnego –

+0

dzięki, ale powinno to być obsługiwane w ten sposób, nawet jeśli serwer zwrócił jakiś błąd, ustawiając 'response.setStatus'? – Cacheing