在spring cloud的Zuul服务网关的过滤器中,项目中使用JWT权限验证,前端JS为了兼容跨域请求,使用Access-Control-Request-Headers的header进行预检请求,如下处理即可:
在pre过滤中:
@Override
public boolean shouldFilter() {
RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest();
String method = request.getMethod();
boolean preflight = RequestMethod.OPTIONS.name().equalsIgnoreCase(method);
if (preflight) {
return false;
}
return true;
}
因为业务请求都使用POST,只有预检请求是OPTIONS。
网友评论