2013-10-16 142 views
8

我遇到問題。我試圖用.then函數insted .sucssess和.error做一個$ http調用。但是,雖然我改變請求不存在的一個的URL,它總是執行更迭處理程序:

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

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

此外,數據參數有404狀態,指示故障,但使用onerror了從未執行。有些身體可以解釋這是如何真正起作用的嗎?

謝謝!

+0

什麼版本的角度您使用的是? –

+0

我正在使用角度1.0.7。 – user2887964

回答

12

此代碼的工作對我來說:

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

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

嗨曼努埃爾,謝謝你的回答。 onError函數在請求中使用錯誤的url時得到執行?如果成功,我的代碼工作,問題就是錯誤處理 – user2887964

+0

錯誤處理是什麼意思?你有什麼反應來處理錯誤? –

+0

我的意思是,當我嘗試tu把錯誤的網址(例如dataaaa/myjson.com),我想要執行onError,但onSucces正在執行,而不是 – 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; 
       } 

    } 

剛剛嘗試這個...

1

兩種方式可以爲NG承諾錯誤處理使用: -

第一:

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

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

二:

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

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