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 解決混合內容問題