gpt4 book ai didi

angularjs - Angular - 404 HTTP 拦截器

转载 作者:太空宇宙 更新时间:2023-11-04 02:11:22 26 4
gpt4 key购买 nike

每当我的 Node 服务器返回 404 错误时,我希望我的 Angular 应用程序能够拦截该错误,并将用户定向到特定路由。

我正在尝试构建一个简单的拦截器来执行此操作,但它似乎没有返回任何内容。

有关为什么此代码在 404 出现时不会打印任何内容的任何指示(我已通过查看页面标题确认了这一点):

enter image description here

代码:

.config(function($httpProvider) {
//Ignore this authInceptor is for saving my JWT's
$httpProvider.interceptors.push('authInterceptor');

//This is the one I'm having issue with
$httpProvider.interceptors.push(function myErrorInterceptor($window, $location) {
return {
requestError: function(res){
if (res.status === 404) {
console.log('You're In - Now do some more stuff')
}
return res;
}
}
})
})

更新:所以除此之外,我已经在我的 Node 端意识到 - 我已经

//This section is to handle Angular HTML5Mode Urls
//Have to rewrite all your links to entry point of your application (e.g. index.html)
app.get('/*', function(req, res) {
res.sendFile(__dirname + '/site/index.html')
});

所以这里的另一个问题是 - app.get('/*' 不会被用来区分 Angular 路由允许的内容 - 那么我如何让它意识到这一点?(不想要我重复代码的数组)

最佳答案

我相信问题是您挂接到requestError而不是responseError。请尝试以下操作:

.config(function($httpProvider) {
//Ignore this authInceptor is for saving my JWT's
$httpProvider.interceptors.push('authInterceptor');

//This is the one I'm having issue with
$httpProvider.interceptors.push(function myErrorInterceptor($window, $location) {
return {
responseError: function(res){
if (res.status === 404) {
console.log('You're In - Now do some more stuff')
}
return res;
}
}
})
});

关于angularjs - Angular - 404 HTTP 拦截器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41941096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com