springboot 實現跨域的幾種方式

1、跨域的原因:
由于同源策略(Same Origin Policy)的限制,瀏覽器不允許跨域請求。同源策略規定,A網頁設置的Cookie、LocalStorage和IndexDB無法被同源以外的網頁讀取。
2、原因:
1)瀏覽器的同源策略(Same Origin Policy)限制了跨域請求。主要出于安全考慮,瀏覽器限制腳本只能讀取與之同源的資源。同源指的是協議、域名、端口都相同。跨域請求會因為違反同源策略而被阻止
2)Cookie和本地存儲也遵循同源策略。A域名下的頁面無法讀取B域名下的Cookie、localStorage等
3)跨域JavaScript請求會報錯。比如A頁面請求B頁面的JS文件,就會報錯
3、常見跨域請求
1)JSONP:通過script標簽加載JS文件來實現跨域通信
2)CORS:服務器端設置HTTP頭,允許指定的請求來源跨域訪問
3)postMessage:A域的window向B域的window發送消息,實現跨域通信
4、實現跨域的幾種方式
1)@crossOrigin 注解

    @CrossOrigin(origins = "http://domain1.com")@RestControllerpublic class TestController {@GetMapping("/test")public String test() {return "hello";}}

2)過濾器CorsFilter
@Configuration

	public class CorsConfig {@Beanpublic CorsFilter corsFilter() {CorsConfiguration config = new CorsConfiguration();config.setAllowCredentials(true);config.addAllowedOrigin("http://domain1.com");config.addAllowedHeader("*");config.addAllowedMethod("*");UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();source.registerCorsConfiguration("/**", config);return new CorsFilter(source);}}

3).配置類WebMvcConfigurer
描述:可以在WebMvcConfigurer接口的addCorsMappings()方法中添加跨域配置

	    @Configurationpublic class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("http://domain1.com").allowedMethods("GET", "POST", "PUT", "OPTIONS", "DELETE", "PATCH").allowedHeaders("*").allowCredentials(true);}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/16605.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16605.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/16605.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode 1774.最接近目標價格的甜點成本

思路:DFS暴力 今天就不整動態規劃了,腦子有點用不過來了。 這個題其實暴搜就行了,在暴搜之前,首先定下來初值,也就是冰淇凌的基地,我們一個一個遍歷就行了,然后挨個暴搜 這個DFS的類型是指數…

python tuple(元組)

python list(列表)、創建、訪問、內置index、判斷in、not in、添加元素、insert、append、extend、列表排序、顛倒順序、刪除元素、remove、pop、clear-CSDN博客 目錄 tuple: 元組的主要特點包括: tuple的創建 單個元組需要注…

C++和QML混合編程-C++訪問QML元素

QML在處理一些UI顯示的時候比較擅長,但當涉及到一些后臺業務的時候就比較乏力了。這里介紹一下如何通過C++對QML的能力進行擴展。C++訪問操作QML的方式主要分為兩種: 1.通過findChild查找QML子元素 2.通過QQmlComponent動態創建元素。 下面分別介紹一下兩種方式的詳細用法。…

測試用例篇

測試用例的基本要素 **測試用例是為了實施測試而向被測試的系統提供的一組集合,這組集合包含:測試環 **境、操作步驟、測試數據、預期結果等要素.評價測試用例的標準:**對比好壞用例的評價標準 **用例表達清楚,無二義性用例可操作…

Spring服務啟動后就執行某個方法

下邊按照執行順序前后,測試代碼結果截圖放到最后: 1、注解PostConstruct 時間:當前bean被創建并且所有的依賴注入完成之后執行; 使用:當前bean 所在類內的某個方法上 添加該注解;該方法沒有參數&#xf…

探索移動云服務:構建高效移動互聯網應用的最佳實踐

一、移動云服務簡介 官網:https://ecloud.10086.cn 移動云,或稱為移動云計算,是通過無線網絡向移動設備用戶提供云計算服務的技術。它使用戶能夠通過智能手機、平板電腦和筆記本電腦等各類移動設備,在任何時間、任何地點便捷地訪…

小程序怎么改名

經常有商家想要對自己的小程序進行重命名,改名可能是為了更好地與品牌形象以及業務相匹配,也可能是為了更好地吸引用戶。那么如何才能更名呢? 一、準備幾個新名字。 在決定改名之前,首先要確定幾個新的小程序名字。為什么要準備…

帝國CMS如何修改時間格式,變成幾分鐘,幾小時教程

該插件已經在帝國cms6.6上測試通過&#xff0c;至于其他版本&#xff0c;請自行測試。 目前支持&#xff1a;標簽模板&#xff0c;列表模板&#xff0c;內容模板 安裝說明&#xff1a; 把以下的內容復制到 /e/class/userfun.php 文件里&#xff08;放在<?php和?>之間…

自定義類型:結構體詳解

1.結構體 1.1 結構的基礎知識 結構是一些值的集合&#xff0c;這些值稱為成員變量。一個整型數組&#xff0c;它的每個數組元素只能是整型&#xff0c;字符型的數組它的每個元素只能是字符型。但是結構體的每個成員可以是各種不同類型的變量。 1.2結構的聲明 //聲明 struct t…

Excel如何換行不換格

在換行的字之間 按住Alt 回車

孜然多程序授權系統V2.0開源

源碼介紹 孜然一款多程序授權系統&#xff0c;支持自定義權限價格/新增程序配置等支持自動生成授權代碼在線簽到在線充值多支付接口IP/域名云黑文章系統&#xff08;富文本編輯器&#xff09;卡密功能一鍵云黑&#xff08;掛個大馬/一鍵黑頁/一鍵刪庫/一鍵刪源碼&#xff09; …

批處理作業調度問題 (回溯法)

目錄 一、問題解析 二、實例剖析 三、算法思路 四、代碼實現 結果&#xff1a; 總結 前言 【問題】n 個作業{1, 2, …, n}要在兩臺機器上處理&#xff0c;每個作業必須先由機器 1 處理&#xff0c;再由機器 2 處理&#xff0c;機器 1 處理作業i所需時間為 ai&#xff0c;…

【Linux-時間管理和內核定時器】

Linux-時間管理和內核定時器 ■ 設置系統節拍率■ 高節拍率和低節拍率的優缺點&#xff1a;■ jiffies 系統節拍數■ get_jiffies_64 這個函數可以獲取 jiffies_64 的值■ 處理繞回■ 使用 jiffies 判斷超時 ■ jiffies 和 ms、 us、 ns 之間的轉換函數在這里插入代碼片■ 內核…

QT常量中有換行符

頭文件添加&#xff1a; #pragma execution_character_set("utf-8")

隨筆之職場:追求技術悲慘之路

技術與職場的反思 作為一名擁有十幾年技術開發經驗的專業人士&#xff0c;我曾堅信技術能力的提升是職場成功的關鍵。我專注于WebGIS開發&#xff0c;不斷學習新技術&#xff0c;追求技術的深度和廣度。然而&#xff0c;隨著時間的推移&#xff0c;我逐漸意識到&#xff0c;技…

Java中的類加載器

類加載器 1.什么是類加載器&#xff1f; 啟動類加載器&#xff08;Bootstrap ClassLoader&#xff09;&#xff1a;這是JVM自帶的類加載器&#xff0c;負責加載Java的核心類庫&#xff0c;如rt.jar等。由于安全原因&#xff0c;啟動類加載器加載的類不能被其他類加載器加載的類…

數據庫(8)——DML數據操作

增添數據 給指定字段添加數據 INSERT INTO 表名 (字段名1&#xff0c;字段名2,...)VALUES(值1,值2...); 沒有的添加的字段默認為NULL。 給全部字段添加數據 INSERT INTO 表名 VALUE (值1,值2,....值n); 此時值的順序對應表中字段的順序 批量添加數據 INSERT INTO 表名(字段1,…

ssm143校園一卡通系統軟件的設計與實現+jsp

校園一卡通系統設計與實現 摘 要 現代經濟快節奏發展以及不斷完善升級的信息化技術&#xff0c;讓傳統數據信息的管理升級為軟件存儲&#xff0c;歸納&#xff0c;集中處理數據信息的管理方式。本校園一卡通系統就是在這樣的大環境下誕生&#xff0c;其可以幫助管理者在短時間…

聊聊變異測試

軟件質量保障 所寫即所思&#xff5c;一個阿里質量人對測試的所感所悟。 1. 介紹 有句話說&#xff1a;證實容易&#xff0c;證偽難。正如測試一樣&#xff0c;證明缺陷存在容易&#xff0c;但證明不存在缺陷難。而變異測試顛覆了這一原則&#xff0c;如果我們知道存在缺陷&am…