久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

Spring Boot設置支持跨域請求過程詳解

瀏覽:124日期:2023-08-22 15:47:34

現代瀏覽器出于安全的考慮, HTTP 請求時必須遵守同源策略,否則就是跨域的 HTTP 請求,默認情況下是被禁止的,IP(域名)不同、或者端口不同、協議不同(比如 HTTP、HTTPS)都會造成跨域問題。

一般前端的解決方案有:

① 使用 JSONP 來支持跨域的請求,JSONP 實現跨域請求的原理簡單的說,就是動態創建<script>標簽,然后利用<script>的 SRC 不受同源策略約束來跨域獲取數據。缺點是需要后端配合輸出特定的返回信息。 ② 利用反應代理的機制來解決跨域的問題,前端請求的時候先將請求發送到同源地址的后端,通過后端請求轉發來避免跨域的訪問。

后來 HTML5 支持了 CORS 協議。CORS 是一個 W3C 標準,全稱是”跨域資源共享”(Cross-origin resource sharing),允許瀏覽器向跨源服務器,發出 XMLHttpRequest 請求,從而克服了 AJAX 只能同源使用的限制。它通過服務器增加一個特殊的 Header[Access-Control-Allow-Origin]來告訴客戶端跨域的限制,如果瀏覽器支持 CORS、并且判斷 Origin 通過的話,就會允許 XMLHttpRequest 發起跨域請求。

前端使用了 CORS 協議,就需要后端設置支持非同源的請求,Spring Boot 設置支持非同源的請求有兩種方式。

第一,配置 CorsFilter。

@Configurationpublic class GlobalCorsConfig { @Bean public CorsFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); config.addAllowedOrigin('*'); config.setAllowCredentials(true); config.addAllowedMethod('*'); config.addAllowedHeader('*'); config.addExposedHeader('*'); UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource(); configSource.registerCorsConfiguration('/**', config); return new CorsFilter(configSource); }}

需要配置上述的一段代碼。第二種方式稍微簡單一些。

第二,在啟動類上添加:

public class Application extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping('/**') .allowCredentials(true) .allowedHeaders('*') .allowedOrigins('*') .allowedMethods('*'); } }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 安阳县| 巴里| 丽水市| 古蔺县| 承德市| 利川市| 平舆县| 武鸣县| 肥乡县| 静宁县| 定日县| 南充市| 抚顺市| 新田县| 泗洪县| 察雅县| 阿拉善右旗| 宜兰市| 泗阳县| 昌图县| 泰州市| 丹阳市| 五大连池市| 乐都县| 牡丹江市| 宣恩县| 二连浩特市| 饶河县| 宜兰市| 公主岭市| 尼勒克县| 义马市| 五指山市| 盐边县| 万宁市| 贵阳市| 武清区| 南丹县| 乌审旗| 裕民县| 珠海市|