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