簡體   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