前端是layUI,发请求时后端拿不到请求头信息,但是用post请求就可以正常拿到token
springboot,postMan请求可以拿到请求头信息,但是前端对接时拿不到headers中的token值,
原因是post请求是一个复杂的请求,会请求两次-------------》请注意分析原因
复杂请求时会先发送一个OPTIONS请求,来测试服务器是否支持本次请求,这个请求时不带数据的,请求成功后才会发送真实的请求。所以前面那个只发送key的问题是要确认服务器支不支持接收这个headers。所以每次获取不到数据的请求都是OPTIONS请求?。所以我们要做的就是把所有的OPTIONS请求统统放行。
做法是在 JwtFilter(自定义的过滤器) 中重写其中的 preHandler 方法。 代码如下:
package com.trj.backgroud.filter;
import io.jsonwebtoken.Claims;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import util.JwtUtil;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Jwt权限过滤
*/
@Component
public class JwtFilter extends HandlerInterceptorAdapter{
@Autowired
private JwtUtil jwtUtil