Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据测试

跨域访问拦截器——OPTION请求

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 个最佳实践

精华推荐