Java Web中實現設置多個域名跨域訪問


添加以下設置可允許所有域名跨域訪問:

response.setHeader("Access-Control-Allow-Origin","*");

但在實際應用中,為了安全起見,不應該讓所有域名都能跨域請求服務器API,需要設置指定的幾個域名可以訪問,直接通過以下代碼是不能實現的

response.setHeader("Access-Control-Allow-Origin","http://localhost:8000, http://oa.ewsd.cn");

可把需要指定能跨域訪問的域名通過數組的方式進行設置,代碼如下:

// 允許跨域請求
String[] allowDomain = {"http://localhost:8000", "http://oa.ewsd.cn"};
Set<String> allowedOrigins = new HashSet<String>(Arrays.asList(allowDomain));
String originHeader = request.getHeader("Origin");
if (allowedOrigins.contains(originHeader)) {
    response.setHeader("Access-Control-Allow-Origin", originHeader);
    response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Cookie");
    response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH");
    response.setHeader("Access-Control-Allow-Credentials", "true");
}

參考:http://blog.csdn.net/zlp_zky/article/details/70213811


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM