Access-Control-Allow-Origin跨域问题,奇葩的抽风现象!!!
现象:今天在做服务器迁移时,跨域拦截死活不让通过,,,生产系统是采取前后端分离,前端用的是Vue,各种度各种方法各种试,这大把大把的时间花花流失。。。
1、第一种方式:从浏览器属性中加配置“--args --disable-web-security --user-data-dir” 。。。效果没什么卵用
google浏览器右键属性,《目标》中在最后加入“--args --disable-web-security --user-data-dir”
2、第二种方式:在Java 中的HandlerInterceptor中对《Access-Control-Allow-Origin》进行拦截,因为是生产系统运行了好久,基本不会出什么问题,但还是check一下
public class HandlerInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept,token,msg");
response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT,DELETE");
response.addHeader("Access-Control-Allow-Credentials", "true");
return true;
}
3、第三种方式:配置tomcat
在tomcat的web.xml第500多行加入,加入后重启服务问题解决
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>