vue.js - axios增加的自定义header,后端request取不到

查看:2794
本文介绍了vue.js - axios增加的自定义header,后端request取不到的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

前台采用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)。

这篇关于vue.js - axios增加的自定义header,后端request取不到的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆