[英]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.