添加以下設置可允許所有域名跨域訪問:
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