搜尋
首頁Javajava教程SpringBoot如何實現全域和局部跨域

SpringBoot如何實現全域和局部跨域

May 14, 2023 pm 11:16 PM
springboot

什麼是跨域

所謂的跨域請求就是指:目前發起請求的域與該請求指向的資源所在的域不一樣。這裡的域指的是這樣的一個概念:我們認為若協定 網域 埠號都相同,那就是同域。

解決跨域

後端解決跨域,主要藉助cors

局部解決(使用註解)

可以使用註解:@CrossOrigin

該註解開啟之後,就可以解決跨域問題,它可以加在controller中,表面這個controller中的全部方法都經過跨域處理,也可以單獨加在某個方法上,表示只有這一個方法經過跨域處理

SpringBoot如何實現全域和局部跨域

但是它的預設值為*,也就是預設全部放行,理論來說不太安全

SpringBoot如何實現全域和局部跨域

如果專案裡面又多個controller或多個方法,使用註解就會顯得非常雞肋,如果一個一個加太麻煩了,這時候就可以使用全域註解了

全域解決

原理:建立一個配置類,開啟跨域註冊,並使用@Configuration註解把這個類當作一個配置注入到項目中

我們可以自由配置請求方式,以及網域權限,請求時間,更細緻的去控制跨域範圍

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("/**")
                //设置跨域 域名权限 规定由某一个指定的域名+端口能访问跨域项目
                .allowedOrigins("*")
                //是否开启cookie跨域
                .allowCredentials(false)
                //规定能够跨域访问的方法类型
                .allowedMethods("GET","POST","DELETE","PUT","OPTIONS")
                //添加验证头信息  token
                //.allowedHeaders()
                //预检请求存活时间 在此期间不再次发送预检请求
                .maxAge(3600);
    }
}

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

SpringBoot如何實現全域和局部跨域

以上是SpringBoot如何實現全域和局部跨域的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具