跨域之options请求详解

所有非简单请求 在正式跨域的请求前,浏览器会根据需要,发起一个“PreFlight”(也就是Option请求),用来让服务端返回允许的方法(如get、post),被跨域访问的Origin(来源,或者域),还有是否需要Credentials(认证信息)

 从这张图中我们可以看出,非简单请求在发送真正的请求前会发送一次Preflight Request,接收一个Preflight Response。(这也是Preflight恶心的地方)。

所以当请求访问网关时 网关需要支持 options请求  并且filter里需要对 options 请求放行 

而资源端需要对 options 请求放行  比如说spring security 里需要配置对 options 请求放行

http.authorizeRequests().requestMatchers(CorsUtils::isPreFlightRequest).permitAll();

这个是也是大坑  需要谨记==

原文地址:https://www.cnblogs.com/kyousuke/p/13274657.html