axios发送请求并且header中携带token时报错
场景:后台使用拦截器拦截请求判断是否携带token,前台使用axios发送请求,header中携带token,但是前台报错,后台debug查看,请求的header中一直不存在token,请求过不去。
原因:axios跨域请求时,一次请求会发送两个路径,一个OPTIONS请求,一个就是我们正常发送的请求,第一个options请求不携带任何自定义的参数及header参数,这个请求就是校验是否安全的,如果安全(response的返回code为200时),第二个我们自己的请求才会发送,因为options不携带任何的参数及header,所以拦截器哪里一直获取不到token。
解决办法:拦截器中判断请求是否是options请求,如果是,则返回code码200,并且return即可。
@Override
public boolean preHandle(HttpServletRequest request,