關於SSM跨域問題,此次前端是Vue

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:

  1. 打開終端

  2. 輸入下面的命令( 需要替換路徑中的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 解決混合內容問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章