1.同一个猫 我的是tomcat7.x
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
<!--跨域依赖-->
<dependency>
<groupId>com.thetransactioncompany</groupId>
<artifactId>cors-filter</artifactId>
<version>2.5</version>
</dependency>
2.一个是猫,一个不是猫
<!--CORS-->
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
<init-param>
<param-name>cors.allowGenericHttpRequests</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.allowOrigin</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowSubdomains</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>cors.supportedMethods</param-name>
<param-value>GET, HEAD, POST,OPTIONS,PUT</param-value>
</init-param>
<init-param>
<param-name>cors.supportedHeaders</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.exposedHeaders</param-name>
<param-value>X-Test-1, X-Test-2</param-value>
</init-param>
<init-param>
<param-name>cors.supportsCredentials</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.maxAge</param-name>
<param-value>3600</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.Chrome浏览器跨域问题(本人的电脑)这个是个别电脑用了webpack出现问题解决方案。不用配置了proxyTable。
Access to XMLHttpRequest at 'http://localhost:8888/factory/FactoryCreate' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
xhr.js?ec6c:178 POST http://localhost:8888/factory/FactoryCreate net::ERR_FAILED
dispatchXhrRequest @ xhr.js?ec6c:178
xhrAdapter @ xhr.js?ec6c:12
dispatchRequest @ dispatchRequest.js?c4bb:52
Promise.then (async)
request @ Axios.js?5e65:61
Axios.<computed> @ Axios.js?5e65:86
wrap @ bind.js?24ff:9
submit @ FactoryCreate.vue?678f:88
click @ FactoryCreate.vue?29b3:18
invokeWithErrorHandling @ vue.esm.js?efeb:1863
invoker @ vue.esm.js?efeb:2188
original._wrapper @ vue.esm.js?efeb:7565
createError.js?16d0:16 Uncaught (in promise) Error: Network Error
at createError (createError.js?16d0:16)
at XMLHttpRequest.handleError (xhr.js?ec6c:83)
–user-data-dir=C:\MyChromeDevUserData
放到如下位置
其它说明:
Windows:
1.关闭所有的chrome浏览器。
2.新建一个chrome快捷方式,右键“属性”,“快捷方式”选项卡里选择“目标”,添加 --args --disable-web-security --user-data-dir=C:\MyChromeDevUserData
3.通过快捷方式打开谷歌浏览器
MAC:
-
打开终端
-
输入下面的命令( 需要替换路径中的yourname)
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/yourname/MyChromeDevUserData/
注意
网上有些文章–user-data-dir参数后面没有添加文件夹名,是设置不成功的。
保证该路径/Users/yourname/下存在MyChromeDevUserData文件夹,没有文件夹MyChromeDevUserData,可以自己新建一个
Chrome49之前的版本:
Windows:
1.关闭所有的chrome浏览器。
2.新建一个chrome快捷方式,右键“属性”,“快捷方式”选项卡里选择“目标”,添加–args --disable-web-security --user-data-dir
3.通过快捷方式打开谷歌浏览器
注意
相对于新版本不需要新建添加MyChromeDevUserData文件夹
可以增加 --allow-running-insecure-content 解决混合内容问题