如果没有调用ajax angularjs,则重定向到登录页面
在我的script.js中,如果没有ajax调用,我必须重定向到登录页面,但我有response.status=200如果没有调用ajax angularjs,则重定向到登录页面,ajax,angularjs,Ajax,Angularjs,在我的script.js中,如果没有ajax调用,我必须重定向到登录页面,但我有response.status=200 myapp.factory('myHttpResponseInterceptor',['$q','$location',function($q,$location){ return { response: function(response) { return response;
myapp.factory('myHttpResponseInterceptor',['$q','$location',function($q,$location){
return {
response: function(response) {
return response;
}, responseError: function(response) {
if (response.status === 401)
$location.url('/login');
return $q.reject(response);
}
}
}]);
myapp.config(['$httpProvider',function($httpProvider) {
$httpProvider.interceptors.push('myHttpResponseInterceptor');
}]);
不知道你的问题是什么。这将在出现响应错误时重定向到登录页面。如果它是一个好的响应,它将简单地返回响应。如果您收到的响应状态为200,那么这是一个良好的响应,因此它将返回响应。如果您不应该收到该消息,那么错误位于您正在调用的任何API中,而不是侦听器中从MVC5API调用JSON数据,我想在这里做的是测试我是否有权访问JSON数据,如果没有重定向到connectedOkay,则返回响应,因此现在的拦截器将这样做。您需要配置API以返回401响应。现在它返回200,正如你在问题中提到的,所以拦截器永远不会做重定向。你能在你的API中发布代码吗?作为回应,我有登录页面的html!我该如何解决这个问题呢?您需要做的是将API配置为返回上述Ben Black提到的401状态代码。