跨域請求,設(shè)置服務(wù)端請求的Origin,Access-Control-Allow-Origin,使用filter過濾器,對每次請求的這兩項數(shù)據(jù)進行設(shè)置。
對應(yīng)代碼 ,設(shè)置一個filter(當前類繼承自?implementsFilter)
?publicvoiddoFilter(ServletRequestreq, ServletResponseres, FilterChainchain)throwsIOException, ServletException {
?????????????? HttpServletResponseresponse= (HttpServletResponse)res;
?????????????? HttpServletRequestrequest= (HttpServletRequest)req;
?????????????? Stringorigin=request.getHeader("Origin");
??????????????response.setHeader("Access-Control-Allow-Origin",origin);
??????????????response.setHeader("Access-Control-Allow-Methods","POST, GET, OPTIONS, DELETE");
??????????????response.setHeader("Access-Control-Max-Age","3600");
??????????????response.setHeader("Access-Control-Allow-Headers","Content-Type,jsonRequest");//這里“Access-Token”是我要傳到后臺的內(nèi)容key?
??????????????response.setHeader("Access-Control-Allow-Credentials","true");
?????????????? Stringmethod=request.getMethod();
??????????????if(method.equalsIgnoreCase("OPTIONS")){
?????????????? ???????res.getOutputStream().write("Success".getBytes("utf-8"));
?????????????? }else{
?????????????? ???????chain.doFilter(req,res);
?????????? }
??????? }
? ? b、在項目的web問價下添加如下代碼
?? ?? ? 主要作用是注冊過濾器攔截請求
?? ??? ?<filter>
??????????<filter-name>corsFilter</filter-name>
??????????<filter-class>com.eifini.common.filter.CorsFilter</filter-class>
???????</filter>
???????<filter-mapping>
??????????<filter-name>corsFilter</filter-name>
??????????<url-pattern>/*</url-pattern>
???????</filter-mapping>