添加以下設(shè)置可允許所有域名跨域訪問:
response.setHeader("Access-Control-Allow-Origin","*");
但在實(shí)際應(yīng)用中奄容,為了安全起見,不應(yīng)該讓所有域名都能跨域請(qǐng)求服務(wù)器API预鬓,需要設(shè)置指定的幾個(gè)域名可以訪問船庇,直接通過以下代碼是不能實(shí)現(xiàn)的
response.setHeader("Access-Control-Allow-Origin","http://localhost:8000, http://oa.ewsd.cn");
可把需要指定能跨域訪問的域名通過數(shù)組的方式進(jìn)行設(shè)置坪郭,代碼如下:
// 允許跨域請(qǐng)求
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");
}