2013-10-16 22 views
8

Ich habe ein Problem. Ich versuche, einen $ http Anruf mit der .then Funktion zu machen .sucssess und .error. Aber obwohl ich die URL der Anforderung an einen nicht vorhandenen ändern, es wird immer die Ausführung der succes Handler:

$http.get('data/myjson.json').then(onSuccess, onError); 

onSuccess(data){}; 
onError(data){}; 

Auch der Datenparameter hat einen Status von 404, den Fehler anzeigt, aber die onError bekam nie ausführen.

einige Körper können erklären, wie das wirklich funktioniert?

danke!

+0

Welche Version von Angular verwenden Sie? –

+0

Ich benutze Winkel 1.0.7. – user2887964

Antwort

12

Dieser Code funktioniert für mich:

$http.get('data/myjson.json').then(onSuccess, onError); 

function onSuccess(data) { 
} 
function onError(data) { 
} 
+0

Hallo Manuel, danke für deine Antwort. Die onError-Funktion wurde ausgeführt, wenn Sie eine falsche URL für die Anfrage verwenden? Im Erfolgsfall funktioniert mein Code, das Problem ist die Fehlerbehandlung – user2887964

+0

Was meinst du mit Fehlerbehandlung? Mit welcher Antwort können Sie Fehler beheben? –

+0

Ich meine, wenn ich versuche, eine falsche URL zu setzen (zum Beispiel dataaaa/myjson.com), möchte ich den onError ausgeführt werden, aber die onSucces wird stattdessen – user2887964

2
$http.get(url).then(onSuccess, onerror); 
    function onSuccess(response) { 
    //Success message here... 
            } 
    function onerror(data) { 

       if(data.status==404) { 
        alert('Invalid URl') 
          return; 
       } 

    } 

Nur versuchen diese ...

1

Beide Weise Gebrauch für ng Versprechen Fehlerbehandlung sein kann: -

Erstens:

$http.get('data/myjson.json') 
.success(successHandler) 
.error(errorHandler) 

function successHandler(data) { 
} 
function errorHandler(data) { 
} 

Zweitens:

$http.get('data/myjson.json').then(successHandler, errorHandler); 

function successHandler(data) { 
} 
function errorHandler(data) { 
}  
Verwandte Themen