Chu*_*k M 5 javascript angularjs
我在尝试优雅地处理$ http错误时遇到问题.我循环遍历服务器列表以进行状态的API调用.成功完成的电话完美无缺.失败的那些不会让我访问错误信息.它总是未定义的.这是代码片段:
angular.forEach($scope.servers, function (server) {
// blank out results first
server.statusResults = {};
$http.jsonp(server.url + '/api/system/status?callback=JSON_CALLBACK', {headers: { 'APP-API-Key': server.apiKey }}).
success(function (data, status, headers, config) {
server.statusResults = data;
}).
error(function (data, status, headers, config) {
// data is always undefined here when there is an error
console.error('Error fetching feed:', data);
});
}
);
Run Code Online (Sandbox Code Playgroud)
控制台输出显示正确的401错误(我没有输出)和我的控制台错误消息(我输出)与未定义的数据对象.
GET https://server_address/api/system/status?callback=angular.callbacks._1 401 (Unauthorized) angular.min.js:104
Error fetching feed: undefined
Run Code Online (Sandbox Code Playgroud)
我想要做的是没有Angular在日志中显示401,而是我将以优雅的方式显示它.但是,由于数据未定义,我无法访问信息.
我是AngularJS的新手,但我的例子与我在文档中找到的其他示例非常匹配.
我也尝试使用$ resource而不是$ http,并得到完全相同的问题.
var statusResource = $resource(server.url + '/api/system/status', {alt: 'json', callback: 'JSON_CALLBACK'},
{ status: {method: 'JSONP'}, isArray: false, headers: { 'APP-API-Key': server.apiKey } });
// make status API call
statusResource.status({}, function (data) {
server.statusResults = data;
}, function (err) {
// data is always undefined here when there is an error
console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
我可能做了一些明显错误的事情,但我不确定还有什么可以尝试的.
| 归档时间: |
|
| 查看次数: |
15687 次 |
| 最近记录: |