后端SpringBoot+前端Vue2
后端用SpringSecurity做了权限控制,前后端都做了跨域处理(测试过能跨域请求数据了)
@Component
public class JwtAccessDeniedHandler implements AccessDeniedHandler {
@Override
public void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AccessDeniedException accessDeniedException) throws IOException, ServletException {
httpServletResponse.setContentType("application/json;charset=UTF-8");
httpServletResponse.setStatus(HttpServletResponse.SC_FORBIDDEN);
ServletOutputStream outputStream = httpServletResponse.getOutputStream();
HttpResult result = HttpResult.fail(453,"权限不足啊"+accessDeniedException.getMessage(),null);
outputStream.write(JSON.toJSONString(result).getBytes("UTF-8"));
outputStream.flush();
outputStream.close();
}
}
public class HttpResult implements Serializable {
/**
* 响应码
*/
private int code;
/**
* 响应消息
*/
private String msg;
/**
* 响应数据
*/
private Object data;
省略get/set方法,构造方法
当发起请求的人权限不足就会进入这个 JwtAccessDeniedHandler 类进行处理,在这里面我设置了个响应数据(状态码453,和一个错误消息)
前端用axios发请求,关于拦截响应的代码:
//添加响应拦截器
myAxios.interceptors.response.use(response => {
//对响应数据做点什么
let resp = response.data;
console.log("myAxios响应拦截",resp);
return response;
},
error => {
//对响应错误做点什么
console.log("myAxios响应错误拦截",error);
return Promise.reject(error);
}
)
就简单在控制台打印一下看看数据
postman测试能显示453的响应数据
但是网页登陆测试后控制台这样:
我要如何获取响应数据呢?就是响应体里453的那个数据