在角度js中捕获http错误

时间:2014-10-07 06:50:00

标签: angularjs

发布http请求时,我无法在错误函数回调中捕获http错误。

这是客户端:

$http.post('/updateBuildings', 
            $.param(
                {'element_id': element_id}
            )).success(function(data) {
                tmp.GetBuildings(data.new_building_id);         
            }).error(function(data) {
                console.log('response: ',data);
            });

    };

服务器端故意返回http错误:状态代码:401,msg:"抱歉,访问 否认&#34。

http error written by browser to console

浏览器(谷歌浏览器)会自行写入日志(请参阅附件),但我无法捕获角度错误并为用户显示警报。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

我在使用successerror方面遇到了问题:他们在承诺链接和错误方面的表现并不像我预期的那样。虽然我不确定这是否会发生什么,但我建议不要使用successerror,但要使用标准承诺then / catch函数。

$http.post('/updateBuildings', $.param({
  'element_id': element_id
})).then(function(response) {
  return tmp.GetBuildings(response.data.new_building_id);         
}).catch(function(error) {
  console.log('response: ', error.data);
});