SpringBoot 跨域方式

2022-09-09 09:18:19 字數 2503 閱讀 4907

當乙個請求url的協議、網域名稱、埠三者之間任意乙個與當前頁面url不同即為跨域

出於瀏覽器的同源策略(sameoriginpolicy)限制。同源策略是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會受到影響。可以說web是構建在同源策略基礎之上的,瀏覽器只是針對同源策略的一種實現。

同源策略會阻止乙個域的j**ascript指令碼和另外乙個域的內容進行互動。所謂同源(即指在同乙個域)就是兩個頁面具有相同的協議(protocol),主機(host)和埠號(port)

對於 cors的跨域請求,主要有以下幾種方式選擇:

返回新的corsfilter

重寫 webmvcconfigurer

使用註解 @crossorigin

手動設定響應頭 (httpservletresponse)

自定web filter 實現跨域

注意:在任意配置類,返回乙個 新的 corsfilter bean ,並新增對映路徑和具體的cors配置路徑。

@configuration

public

class

globalcorsconfig

}

@configuration

public

class corsconfig implements

webmvcconfigurer )

.allowedheaders("*")

.exposedheaders("*");

}}

在控制器(類上)上使用註解 @crossorigin:,表示該類的所有方法允許跨域。

@restcontroller

@crossorigin(origins = "*")

public

class

hellocontroller

}

在方法上使用註解 @crossorigin:

//指定具體ip允許跨域

public

string hello()

使用 httpservletresponse 物件新增響應頭(access-control-allow-origin)來授權原始域,這裡 origin的值也可以設定為 「*」,表示全部放行。

首先編寫乙個過濾器,可以起名字為mycorsfilter.j**a

在web.xml中配置這個過濾器,使其生效

<

filter

>

<

filter-name

>corsfilter

filter-name

>

<

filter-class

>com.mesnac.aop.mycorsfilter

filter-class

>

filter

>

<

>

<

filter-name

>corsfilter

filter-name

>

<

url-pattern

>/*

url-pattern

>

>

SpringBoot 處理跨域請求的方式

一 第一種方式 1 在需要跨域的類或方法上方增加註解 crossorigin,只針對單個方法或類有效,適用於只有個別方法需要跨域的情況。restcontroller crossorigin public class usercontroller 二 第二種方式 2 1 編寫乙個支援跨域請求的 con...

springboot跨域配置

1.springboot它的好處就是它強大的自動配置,使我們能夠快速的搭建乙個專案。而springboot主要的設計目的是為微服務而誕生的。在前後端分離架構中,前端請求後端介面必然存在跨域,後端只需要提供服務即可。2.springboot配置跨域 編寫cors配置類 import org.sprin...

spring boot跨域問題

方式一 直接寫乙個 配置類 其他 不變 configuration public class orginconfig bean public corsfilter corsfilter 方式二 直接寫乙個 配置類 configuration public class weboriginconfig ...