// axios默认配置
axios.defaults.timeout = 10000 // 超时时间
axios.defaults.baseURL = 'http://172.18.2.29' // 用于发布,发布项目时这里改成nginx反向代理的地址
axios.fileUploadUrl = 'http://172.18.2.25:8080/yawei-web-app-cms' // 允许服务器获取cookie
axios.defaults.withCredentials = true // 允许服务器获取cookie
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
Vue.config.js
devServer: {
/**
* 这一块是devServer的配置,可以参考https://webpack.js.org/configuration/dev-server/
* (可选,根据自己情况来设置)
*/
open: false, // 浏览器自动打开页面
host: 'localhost', // 本地服务器访问的路径
port: 8001, // 本地服务器访问的端口
/**
* vue-cli3跨域开发用的全配置!
*/
proxy: {
/**
* 代理配置
*/
'/cmsapi': {
// 你要跨域的域名(包含host、端口号,切记:一定要带上http头);
// 同一个域名只能设置一次跨域,否则重复报错!
target: 'http://172.18.2.25:8080',
ws: true,
pathRewrite: {
'^/cmsapi': '/yawei-web-app-cms/'
},
cookiePathRewrite: {
'/yawei-web-app-cms/': '/'
},
changeOrigin: true // 是否跨域,设置为true;(必须)
},
nginx 配置
location /cmsapi/ {
proxy_cookie_path /yawei-web-app-cms /cmsapi;
proxy_pass http://172.18.2.25:8080/yawei-web-app-cms/;
}
JAVA 后台增加过滤器 主要用于处理options预检验请求
public class ProcessInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
// 获取客户请求头 作为允许的头 即允许所有请求
String orign = httpServletRequest.getHeader("Origin");
httpServletResponse.setHeader("Access-Control-Allow-Origin", orign);
httpServletResponse.setHeader("Access-Control-Allow-Headers", "USER_TOKEN,Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
httpServletResponse.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
httpServletResponse.setHeader("Access-Control-Allow-Credentials","true");
httpServletResponse.setHeader("X-Powered-By","Jetty");
String method= httpServletRequest.getMethod();
if (method.equals("OPTIONS")){
httpServletResponse.setStatus(200);
return false;
}
System.out.println(method);
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
}
spring-mvc 配置文件中增加
<mvc:interceptors>
<bean class="yawei.web.app.cms.interceptor.ProcessInterceptor"></bean>
</mvc:interceptors>