HttpErrorResponse 无法从 HttpServletResponse 获得预期的响应
HttpErrorResponse can not get expected response from HttpServletResponse
我是 angular2 的新手,现在我使用拦截器从服务器获取响应
当我出现 return 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);
});
然后err就这么糊涂了:
HttpErrorResponse
状态一直为0,没有收到服务器的错误信息,但是chrome的开发者工具上的网络可以收到响应:
headers
(抱歉没有权限上传图片,只有两个链接)
我已经搜索了很多关于这个的问题,但也无法解决我的问题。谁能帮帮我?非常感谢!
很抱歉这么晚才回复。 angular2好像不能解析HttpServletResponse,我换个方式解决:
如果出现 401 错误,我将通过转发
重定向到 'unauthorized'
httpServletRequest.getRequestDispatcher("unauthorized").forward(httpServletRequest,httpServletResponse);
然后在我的 'unauthorized':
@GET
@Path("unauthorized")
public Response unAuthorized(){
return RestResult.failure(401,"need login",401);
}
RestRsult 是一个 class 包一些响应:
public static Response failure(int errorcode, String errormsg,int status) {
ResponseFailureObj result = new ResponseFailureObj(errorcode, errormsg);
return Response.status(status).type(MediaType.APPLICATION_JSON).entity(result).build();
}
然后,我将在 angular2 HttpErrorResponse 上收到状态 401 并收到错误消息,而不是未知错误或空消息。
我是 angular2 的新手,现在我使用拦截器从服务器获取响应
当我出现 return 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);
});
然后err就这么糊涂了: HttpErrorResponse
状态一直为0,没有收到服务器的错误信息,但是chrome的开发者工具上的网络可以收到响应: headers
(抱歉没有权限上传图片,只有两个链接) 我已经搜索了很多关于这个的问题,但也无法解决我的问题。谁能帮帮我?非常感谢!
很抱歉这么晚才回复。 angular2好像不能解析HttpServletResponse,我换个方式解决:
如果出现 401 错误,我将通过转发
重定向到 'unauthorized' httpServletRequest.getRequestDispatcher("unauthorized").forward(httpServletRequest,httpServletResponse);
然后在我的 'unauthorized':
@GET
@Path("unauthorized")
public Response unAuthorized(){
return RestResult.failure(401,"need login",401);
}
RestRsult 是一个 class 包一些响应:
public static Response failure(int errorcode, String errormsg,int status) {
ResponseFailureObj result = new ResponseFailureObj(errorcode, errormsg);
return Response.status(status).type(MediaType.APPLICATION_JSON).entity(result).build();
}
然后,我将在 angular2 HttpErrorResponse 上收到状态 401 并收到错误消息,而不是未知错误或空消息。