问题描述:
今天使用@WebFilter拦截获取消息头信息,发现获取的header为空,同时发现提交方式为OPTIONS,可是前端一直使用post和Get提交的
原因:
Preflighted Requests是CORS中一种透明服务器验证机制。预检请求首先需要向另外一个域名的资源发送一个 HTTP OPTIONS 请求头,其目的就是为了判断实际发送的请求是否是安全的。
下面的2种情况需要进行预检:
1、 简单请求,比如使用Content-Type 为 application/xml 或 text/xml 的 POST 请求;
2、中设置自定义头,比如 X-JSON、X-MENGXIANHUI 等。
解决:
这个是基础居然长时间忘了。。。。。
在拦截器中将option请求放过
if(“OPTIONS”.equals(method)) {
log.debug(“method is :{}”,httpServletRequest.getMethod());
// 放行
chain.doFilter(request, response);
return;
}