LoginAdminGatewayFilter 5
来源:16-6 登录token超时优化
慕神4535282
2020-11-02
老师,下午好,请教一个问题,
后端 LoginAdminGatewayFilter.java
public class LoginAdminGatewayFilter implements GatewayFilter, Ordered {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
....
if (token == null || token.isEmpty()) {
LOG.info("token为空,请求被拦截");
exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
return exchange.getResponse().setComplete();
}
...
}
}
前端 admin/src/main.js
error => {
console.log("返回拦截:", error.response);
let response = error.response;
const status = response.status;
if (status === 401) {
// 判断状态码是401 跳转到登录
console.log("未登录,跳到登录页面");
Tool.setLoginUser(null);
router.push('/login');
}
为什么上面的代码是写成 response.status 而不是 response.statusCode; 这里的 response 究竟对应于后端的哪个类型?
谢谢老师解答 !
写回答
1回答
-
response是http结果,你可以把response打印出来,包括status, data等数据。
gateway里的statusCode是gateway自己定义的属性,跟最终返回的status会不一样
012020-11-03
相似问题