当http请求没有得到任何反馈时,我想弹出并提示“错误联系服务器”。
.controller('items_ctrl',['$scope','$http',function($scope,$http){
$scope.shop_id=localStorage.getItem("shop_id");
$http.get('http://localhost/myapp/spree/stocks.php').success(function(data){
console.log(JSON.stringify(data));
$scope.item=data;
});
}])
答案 0 :(得分:1)
您应该使用then
代替success/error
方法
这是您更新的代码
.controller('items_ctrl',['$scope','$http',function($scope,$http){
$scope.shop_id=localStorage.getItem("shop_id");
$http.get('http://localhost/myapp/spree/stocks.php').then(function(data){
console.log(JSON.stringify(data));
$scope.item=data;
}, function(error){
alert("Error contacting server");
});
}])
答案 1 :(得分:0)
您应该指定错误回调函数。
$http.get('/someUrl', config).then(successCallback, errorCallback);
有关详细信息,请参阅 https://docs.angularjs.org/api/ng/service/ $ HTTP
答案 2 :(得分:0)
使用promise for it。在你的javascript中设置一些超时。
var cancelReq= $q.defer();
$http.get('/someUrl', {timeout: cancelReq.promise}).success(successCallback);
$timeout(showErrorPopup, 3000);
超时后,解决它然后显示弹出
function showErrorPopup(){
cancelReq.resolve();
//popup code
}