AngularJS $httpProvider 错误
AngularJS $httpProvider Error
我正在 AngularJS 中使用 Django API 端点编写 Web 应用程序。当我想对该端点执行 JSON 调用时,我想捕获可能的错误(例如 404 未找到错误)。为此,我使用 $httpProvider.
但是当我 运行 我的应用程序(使用 gulp)时,在控制台中,浏览器显示此错误 "Error: e is undefined"
这是我的工厂代码(基础代码,以后会扩充):
angular.module('qrWebapp').factory('errorInterceptor', function(){
var errorInterceptor = {
response: function() {
console.log('hallo');
}
};
return errorInterceptor;
});
然后我在配置区初始化它:
angular.module('qrWebapp', ['ngResource', 'ui.router', 'ui.bootstrap'])
.config(function ($stateProvider, $urlRouterProvider, $httpProvider){
$httpProvider.interceptors.push('errorInterceptor');
});
我做错了什么?
乍一看,我没发现你的代码有什么问题。
但是拦截器假定接收 return 值,因此如果您没有 return 任何值作为示例代码,则可能会导致意外问题。
试试下面的代码。
angular.module('qrWebapp').factory('errorInterceptor', function($q){
var errorInterceptor = {
response: function(res) {
console.log(res.status);
if (res.status !== 200){
// Normally show some error messages. One of the most simple way is calling alert function.
console.log(res.status, res.data);
}
return $q.reject(res);
}
};
return errorInterceptor;
});
希望对您有所帮助。
我正在 AngularJS 中使用 Django API 端点编写 Web 应用程序。当我想对该端点执行 JSON 调用时,我想捕获可能的错误(例如 404 未找到错误)。为此,我使用 $httpProvider.
但是当我 运行 我的应用程序(使用 gulp)时,在控制台中,浏览器显示此错误 "Error: e is undefined"
这是我的工厂代码(基础代码,以后会扩充):
angular.module('qrWebapp').factory('errorInterceptor', function(){
var errorInterceptor = {
response: function() {
console.log('hallo');
}
};
return errorInterceptor;
});
然后我在配置区初始化它:
angular.module('qrWebapp', ['ngResource', 'ui.router', 'ui.bootstrap'])
.config(function ($stateProvider, $urlRouterProvider, $httpProvider){
$httpProvider.interceptors.push('errorInterceptor');
});
我做错了什么?
乍一看,我没发现你的代码有什么问题。 但是拦截器假定接收 return 值,因此如果您没有 return 任何值作为示例代码,则可能会导致意外问题。
试试下面的代码。
angular.module('qrWebapp').factory('errorInterceptor', function($q){
var errorInterceptor = {
response: function(res) {
console.log(res.status);
if (res.status !== 200){
// Normally show some error messages. One of the most simple way is calling alert function.
console.log(res.status, res.data);
}
return $q.reject(res);
}
};
return errorInterceptor;
});
希望对您有所帮助。