對(duì)于前后端分離的項(xiàng)目難免會(huì)遇到跨域的問題,在設(shè)置跨域的問題中有許多需要注意的事情,如本次將要將的設(shè)置access-control-allow-origin使其允許多域名請(qǐng)求。
(1)設(shè)置允許多域名訪問最簡單的方法是使用通配符,但是這種方式允許所有域名都可以訪問,并不安全,而且這種方式瀏覽器不能攜帶cookie信息(攜帶cookie信息只能使用真實(shí)域名,如下面第二中方式)。這種方式只推薦在不帶cookie信息的開發(fā)中測(cè)試使用。代碼如下:
rep.setheader("access-control-allow-origin", "*");
(2)使用數(shù)組過濾的方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
@override public void dofilter(servletrequest request, servletresponse response, filterchain chain) throws ioexception, servletexception { httpservletrequest req = (httpservletrequest) request; httpservletresponse rep = (httpservletresponse) response; // 設(shè)置允許多個(gè)域名請(qǐng)求 string[] allowdomains = { "https://tool.zzvips.com" , "http://192.168.11.213:8080" , "http://localhost:8080" }; set alloworigins = new hashset(arrays.aslist(allowdomains)); string originheads = req.getheader( "origin" ); if (alloworigins.contains(originheads)){ //設(shè)置允許跨域的配置 // 這里填寫你允許進(jìn)行跨域的主機(jī)ip(正式上線時(shí)可以動(dòng)態(tài)配置具體允許的域名和ip) rep.setheader( "access-control-allow-origin" , originheads); } |
總結(jié)
以上所述是小編給大家介紹的java設(shè)置access-control-allow-origin允許多域名訪問的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!
原文鏈接:https://blog.csdn.net/xshsjl/article/details/82994219