繁体   English   中英

Spring3.1 CORS。 此代码是什么意思? 我不明白为什么作者使用“分号”

[英]Spring3.1 CORS. What does this code mean? I don't understand why the author used 'semi-colon' to that position

我一直在寻找在spring3.1上启用CORS的解决方案,几乎每个人都使用如下相同的代码。

public class CorsFilter extends OncePerRequestFilter {

@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
        throws ServletException, IOException {
    response.addHeader("Access-Control-Allow-Origin", "*");        
    if (request.getHeader("Access-Control-Request-Method") != null && "OPTIONS".equals(request.getMethod())); {
        // CORS "pre-flight" request
        response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
        response.addHeader("Access-Control-Allow-Headers", "Authorization");        
        response.addHeader("Access-Control-Max-Age", "1728000");
    }
    filterChain.doFilter(request, response);
}

}

我从https://gist.github.com/kdonald/2232095看到了这段代码

您是否在if语句的条件末尾看到“分号”? 我有点生气,因为我在这段代码中苦苦挣扎了一个多小时……

这段代码看起来像典型的if语句,但由于使用了“分号”,因此它以一种完全怪异的方式运行。

我仍然不明白这段代码是如何工作的,如果它能工作,为什么作者以这种方式编写代码...

不仅对于“分号”,而且对于{},如果将“分号”用于任何目的,则该括号也没有用。

有谁可以帮助我理解此代码?

分号将结束if语句,使其成为空的if语句。 允许使用此语法,因为您可以编写无括号的if语句。

然后,独立的大括号将声明一个匿名块,该块将添加标头。 该块将始终执行。 因此,您将始终添加标题。

这可能是作者的错字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM