前台采用axios提交数据,采用拦截方式设置header信息
// http request 拦截器
axios.interceptors.request.use(
config => {
config.headers.common['MUserAgent'] = userAgent
if (store.state.token) {
config.headers.common['MToken'] = store.state.token
}
if (store.state.uid) {
config.headers.common['UID'] = store.state.uid
}
return config
},
err => {
return Promise.reject(err)
})
后台spring mvc,采用filter进行权限过滤,但发现request取不到相应的header
String token = request.getHeader("MToken");
已设置了跨域
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD"); // or *
// response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with, Content-Type, MUserAgent, MToken, UID"); // or *
chain.doFilter(req, res);
}
可以了,前端没问题,是后台过滤器(处理用户登录的,AuthFilter)问题,现在的处理方式是不走这个过滤器(AuthFilter)。