1、如果服務(wù)端是Java開發(fā)的,添加如下設(shè)置允許跨域即可,但是這樣做是允許所有域名都可以訪問,不夠安全。
response.setHeader(“Access-Control-Allow-Origin”,"*");
2、為保證安全性,可以只添加部分域名允許訪問可以在過濾器的filter的dofilter()方法種設(shè)置。
public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {
? ? ? ? // 將ServletResponse轉(zhuǎn)換為HttpServletResponse
? ? ? ? HttpServletResponse httpResponse = (HttpServletResponse) res;
? ? ? ? // 如果不是80端口,需要將端口加上,如果是集群,則用Nginx的地址,同理不是80端口要加上端口
?? ?String [] ?allowDomain= {"http://www.baidu.com","http://123.456.789.10","http://123.16.12.23:8080"};
?? ?Set allowedOrigins= new HashSet(Arrays.asList(allowDomain));
?? ?String originHeader=((HttpServletRequest) req).getHeader("Origin");
?? ?if (allowedOrigins.contains(originHeader)){
?? ? ? ?httpResponse.setHeader("Access-Control-Allow-Origin", originHeader);
? ? ? ? ? ? httpResponse.setContentType("application/json;charset=UTF-8");
? ? ? ? ? ? httpResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
? ? ? ? ? ? httpResponse.setHeader("Access-Control-Max-Age", "3600");
? ? ? ? ? ? httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type,Access-Token");
? ? ? ? ? ? // 如果要把Cookie發(fā)到服務(wù)器,需要指定Access-Control-Allow-Credentials字段為true
? ? ? ? ? ? httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? httpResponse.setHeader("Access-Control-Expose-Headers", "*"); ? ? ? ?
? ? ? ? } ? ? ? ?
? ? ? ? chain.doFilter(req, res);
}?
?文章來源:http://www.zghlxwxcb.cn/news/detail-622658.html
通過定義字符串?dāng)?shù)組?String [] ?allowDomain= {"http://www.baidu.com","http://123.456.789.10","http://123.16.12.23:8080"};來指定允許的域
?文章來源地址http://www.zghlxwxcb.cn/news/detail-622658.html
到了這里,關(guān)于Java中設(shè)置多個(gè)Access-Control-Allow-Origin跨域訪問的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!