我是angular2的新手,现在我使用来自服务器的intercepter get响应
当我返回401错误时,我的java服务器代码如下:
// httpServletResponse's type is HttpServletResponse
httpServletResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
httpServletResponse.getWriter().write("required login");
和我在angular2代码上的拦截器如下:
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
this.rest = this.inj.get(RestProvider);
return next.handle(req).catch(err =>{
console.log(err);
});
然后错误是如此困惑: HttpErrorResponse
状态始终为0并且它没有收到来自服务器的错误消息,但是,chrome的开发人员工具上的网络可以收到响应: headers
(对不起,我没有上传piture的权限,只有两个链接) 我已经搜索了很多关于此的问题,但也无法解决我的问题。谁能帮助我?非常感谢!
答案 0 :(得分:0)
很抱歉这么晚回复。似乎angular2无法分析HttpServletResponse,我通过其他方式解决它:
如果401错误,我会重定向到未经授权的&#39;通过前进
delimiter ;;
DROP EVENT IF EXISTS `test_event`;;
CREATE EVENT IF NOT EXISTS `test_event`
ON SCHEDULE EVERY 1 minute
starts current_timestamp()
ON COMPLETION NOT PRESERVE ENABLE
COMMENT 'test report'
DO BEGIN
DROP TABLE IF EXISTS `test`;
CREATE TABLE test (name VARCHAR(20), owner VARCHAR(20),
species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
END;
然后在我未经授权的&#39;:
httpServletRequest.getRequestDispatcher("unauthorized").forward(httpServletRequest,httpServletResponse);
RestRsult是一个类包,有些回复:
@GET
@Path("unauthorized")
public Response unAuthorized(){
return RestResult.failure(401,"need login",401);
}
然后,我将在angular2 HttpErrorResponse上收到状态401,并收到错误消息而不是未知错误或空消息。