跨域访问拦截器——OPTION请求
日期: 2020-04-01 分类: 跨站数据测试 250次阅读
Springboot跨域访问为什么会出现OPTION请求呢?
** 请求方式有两大类,一类是简单的请求,一类是非简单的请求。简单的请求类似于GET、POST、HEAD等,非简单的请求如PUT、DELETE等。对于简单请求,浏览器直接发本次请求,而对于非简单请求,浏览器会先发预检请求,然后再发本次请求。而预检请求就是OPTION请求,OPTION请求只是检测作用,并没有具体数据。对于跨域访问设置拦截器时,需要对OPTION请求做相应的处理,否则对于非简单的请求会拦截访问**
具体详解OPTION请求请点击这里
解决办法
设置拦截器处对OPTION请求做处理,代码如下:
@Override
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(new HandlerInterceptor() {
//通过控制器之前执行的方法
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("执行拦截器");
//判断请求方式,排除OPTIONS请求
if(request.getMethod().toUpperCase().equals("OPTIONS")){
return true;//通过所有OPTION请求
}
//其他业务拦截功能
return true;//返回true表示允许通过
}
}).addPathPatterns("/**")//添加拦截路径,拦截所有
.excludePathPatterns("/XXX/YYY/**");//排除拦截路径
}
END
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
上一篇: 双目视觉之立体校正
下一篇: 数据库设计的 10 个最佳实践
精华推荐