飛昂之雪 關於springmvc跨域

2021-08-02 14:00:27 字數 1772 閱讀 1706

關於跨域問題,主要用的比較多的是cros跨域。

詳細介紹請看

但是,在springmvc+angularjs下支援跨域請求時,出現複雜跨域場景(post + json)失敗的情況。

開始的跨域配置如下:

public

class crossinterceptor extends

handlerinterceptoradapter

}

spring-dispatcher-servlet.xml中配置如下:

<

mvc:interceptors

>

<

mvc:interceptor

>

<

path

="/**/*"

/>

<

bean

class

="cn.***.filter.crossinterceptor"

/>

mvc:interceptor

>

mvc:interceptors

>

針對簡單跨域沒問題。但是針對post+json請求卻失敗,提示跨域失敗。

跟蹤springmvc原始碼到frameworkservlet中的dooption方法,發現,接受了option預檢,但是spring主動返回allow,沒有支援跨域的配置。

因此,加入新的配置如下:

public

class crossfilter extends

onceperrequestfilter

filterchain.dofilter(request, response);}}

web.xml配置如下:

<

filter

>

<

filter-name

>cors

filter-name

>

<

filter-class

>cn.***.filter.crossfilter

filter-class

>

filter

>

<

>

<

filter-name

>cors

filter-name

>

<

url-pattern

>/*

url-pattern

>

>

此時,option請求被crossfilter過濾器接入並賦予跨域響應頭,同時也進入frameworkservlet中的dooption方法。檢視瀏覽器控制台,發現option請求返回支援跨域資訊,後續的post請求進入controller。

公升級spring版本的後,上述跨域並不支援所有瀏覽器。經測試,safari正常,chrome異常。重新翻了一下最新的文件後,得到最新的跨域配置如下:

<

mvc:cors

>

<

path

="/**"

allowed-origins

="*"

allow-credentials

="true"

max-age

="1800"

allowed-methods

="get,post,options"

/>

mvc:cors

>

相比3.x系列,簡單了很多。

雪 華 雪之華 不可不玩的好遊戲

原帖 大學生拓也,寒假中揹著結他,騎著愛車,無目的的四處旅行,到達某個小鎮 湯華鎮時,機車失事,自己被撞的四分五裂,還連帶把乙個小廟給撞的四分五裂。小廟的小小神靈,本鎮的守護神耗盡自己的神力救活了他。為了修復小廟,恢復自己的神力,避免失控的力量將小鎮毀滅,小小神靈向拓也討要大筆的金錢,作為窮這個字的...

飛信分析之八 飛信的加密方法

花了好幾天時間終於把飛信加密的密碼用非.net的方式給還原了,並用c 完全實現了一遍,回頭把這個c 版的showpasswd貼上來。看到有朋友問到飛信的加密方法,這裡就把飛信用的加密和變換的方法一起簡要介紹一下。1.飛信的配置檔案的加密方法 飛信的配置檔案其實不是加密,只是進行了一下變換。這種變換的...

菜鳥先飛之JAVA 方法

提高 的復用性 完成特定功能的 塊。修飾符 返回值型別 方法名 引數型別 引數名1,引數型別 引數名2.方法體語句 return返回值 修飾符 目前就用 public static。後面我們再詳細的講解其他的修飾符。返回值型別 就是功能結果的資料型別。方法名 符合命名規則即可。方便我們的呼叫。引數 ...