2016-08-16 68 views
2

我在離子中遇到了一個問題。我試圖放棄我的$ http post並在20秒後強行收到請求,並希望執行http調用錯誤代碼塊,其中顯示「發現服務器問題」。是否有任何方法可以中止http調用並強制執行其錯誤塊秒在離子或cordova.Thanks在AdvanceIs有任何種類的參數通過呼叫中止它在幾秒鐘後

+2

可能重複[Angular $ http:在'timeout'配置上設置承諾](http://stackoverflow.com/questions/21915834/angular-http-setting-a-promise-on-the-timeout-配置) – e666

回答

1

以下是正確的超時語法。

$http({ 
     method: POST, 
     url: 'path/to/service', 
     timeout: 5000 
    }).success(function(data){ 
     // With the data succesfully returned, call our callback 
     successFunc(data); 
    }).error(function(){ 
     errorFunc("error"); 
    }); 
} 
}); 

或者修改http提供程序的默認超時類似於以下內容。

angular.module('MyApp', []) 
    .config(['$httpProvider', function($httpProvider) { 
    $httpProvider.defaults.timeout = 5000; 
}]); 

Goodluck。

+0

謝謝Dinesh,它像一個魅力。 – user3454799

0

您可以在http請求中使用超時選項。如果達到超時限制,將自動執行錯誤塊

$http.get('path/to/service', {timeout: 5000}); 
+0

如果http請求是POST? – user3454799

+0

它適用於POST也 –

+0

對不起兄弟,但這不起作用的情況下,HTTP發佈請求。我試過了,但它不會出現錯誤。$ http.post(url,{timeout:1000},data,config) – user3454799