溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SpringBoot如何實(shí)現(xiàn)全局和局部跨域

發(fā)布時(shí)間:2023-01-09 09:19:17 來源:億速云 閱讀:83 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“SpringBoot如何實(shí)現(xiàn)全局和局部跨域”的相關(guān)知識,小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“SpringBoot如何實(shí)現(xiàn)全局和局部跨域”文章能幫助大家解決問題。

什么是跨域

所謂的跨域請求就是指:當(dāng)前發(fā)起請求的域與該請求指向的資源所在的域不一樣。這里的域指的是這樣的一個(gè)概念:我們認(rèn)為若協(xié)議 + 域名 + 端口號均相同,那么就是同域。

解決跨域

后端解決跨域,主要借助cors

局部解決(使用注解)

可以使用注解:@CrossOrigin

該注解開啟之后,就可以解決跨域問題,它可以加在controller中,表面這個(gè)controller中的全部方法都經(jīng)過跨域處理,也可以單獨(dú)加在某個(gè)方法上,表示只有這一個(gè)方法經(jīng)過跨域處理

SpringBoot如何實(shí)現(xiàn)全局和局部跨域

但是它的默認(rèn)值為*,也就是默認(rèn)全部放行,理論來說不太安全

SpringBoot如何實(shí)現(xiàn)全局和局部跨域

如果項(xiàng)目里面又多個(gè)controller或者多個(gè)方法,使用注解就會顯得非常雞肋,如果一個(gè)一個(gè)加太麻煩了,這時(shí)候就可以使用全局注解了

全局解決

原理:創(chuàng)建一個(gè)配置類,開啟跨域注冊,并使用@Configuration注解把這個(gè)類當(dāng)作一個(gè)配置注入到項(xiàng)目中

我們可以自由配置請求方式,以及域名權(quán)限,請求時(shí)間,更加細(xì)度的去控制跨域范圍

package com.wyh.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Description: 解決全局跨域
 * @Author: 魏一鶴
 * @Date: 2022-11-30 22:44
 **/

@Configuration
public class CorsMapping implements WebMvcConfigurer {

    @Override
    /**
     * 重新跨域支持方法
     * CorsRegistry  開啟跨域注冊
     */
    public void addCorsMappings(CorsRegistry registry) {
        //addMapping 添加可跨域的請求地址
        registry.addMapping("/**")
                //設(shè)置跨域 域名權(quán)限 規(guī)定由某一個(gè)指定的域名+端口能訪問跨域項(xiàng)目
                .allowedOrigins("*")
                //是否開啟cookie跨域
                .allowCredentials(false)
                //規(guī)定能夠跨域訪問的方法類型
                .allowedMethods("GET","POST","DELETE","PUT","OPTIONS")
                //添加驗(yàn)證頭信息  token
                //.allowedHeaders()
                //預(yù)檢請求存活時(shí)間 在此期間不再次發(fā)送預(yù)檢請求
                .maxAge(3600);
    }
}

注意:千萬不要忘了@Configuration注解,不然配置是無效的?。?!

SpringBoot如何實(shí)現(xiàn)全局和局部跨域

關(guān)于“SpringBoot如何實(shí)現(xiàn)全局和局部跨域”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點(diǎn)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI