web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-servlet.xml</param-value> </context-param> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter> <filter-name>contextFilter</filter-name> <filter-class>app.filter.WebContextFilter</filter-class> </filter> <filter-mapping> <filter-name>contextFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list> </web-app>
WebContextFilter
package app.filter; import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * Created by 李卫海 on 2018/1/19. */ public class WebContextFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) servletResponse; String origin = (String) servletRequest.getRemoteHost()+":"+servletRequest.getRemotePort(); response.setHeader("Access-Control-Allow-Origin", "http://127.0.0.1:8081"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Headers", "Authentication,Origin, X-Requested-With, Content-Type, Accept,withCredentials,user_id"); response.setHeader("Access-Control-Allow-Credentials", "true"); chain.doFilter(servletRequest, servletResponse); } @Override public void destroy() { } }
APIHomeController 。java
package app.controller; /** * 首页 * @author 李卫海 2017年11月13日 * */ @CrossOrigin(origins = "*", maxAge = 3600) @Controller @RequestMapping("/home") public class APIHomeController extends APIBaseController { @Autowired private IHomeBusiness homeBusiness; /** * app 省接口(所有) */ @RequestMapping(value = "/province") @ResponseBody public ResultCode<List<DimRegion>>regionProvince(HttpServletRequest request,HttpServletResponse response){ Cookie[] values = request.getCookies(); if(values==null||values.length<=0){ Cookie cookie=new Cookie("sessionid",request.getSession().getId()); cookie.setMaxAge(3600); response.addCookie(cookie); } System.out.println(values); List<DimRegion> list=homeBusiness.regionProvince(); return new ResultCode<List<DimRegion>>(list); } }
springmvc.xml
<mvc:cors> <mvc:mapping path="/home/**" allowed-origins="http://127.0.0.1:8081" allowed-methods="POST, GET, OPTIONS, DELETE, PUT" allowed-headers="Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With,Accept,user_id,cookie" allow-credentials="true" max-age="3600" /> <!--exposed-headers="header1, header2"--> </mvc:cors>
前端
<script>
import axios from "axios";
axios.defaults.withCredentials=true;
axios.interceptors.request.use(config => {
config.headers.user_id ='0'
return config
}, error => Promise.reject(error))
axios.interceptors.response.use(response => {
//console.log(response);
return response;
},
error => Promise.resolve(error.response))
created: function () {
const that = this;
var params = new URLSearchParams();
params.append('logistics_id', 1);
axios
.get("http://127.0.0.1:8080/app/home/province.do", params
).then(function(response) {
//console.log(response.data);
let data = response.data;
console.log(response)
if (data.errcode == 0) {
// that.$nextTick(function(){
// that.logistics=data.data;
// })
} else {
Toast(data.errmsg);
}
})
.catch(function(error) {
console.log(error);
//Toast(error);
});
},
</script>