springBoot 解決前后端分離項目中跨越請求,同源策略


今天在做項目的過程,采用前后端分離技術的時遇到采用ajax請求無法訪問后台接口,按F12,查看瀏覽器運行狀態時,報如下錯誤

為了解決瀏覽的同源策略,就必須了解什么是同源策略。

1.什么是同源策略

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

而所謂同源是指,域名,協議,端口相同。如靜態資源所在的服務器和后端接口所在服務器不是同一個服務器時,必然需要跨域獲取數據

2.解決同源策略,實現數據的跨院問題的方法

 在springboot的啟動類下編寫以下代碼,並引入紅色代碼部分對應的包
package com.example.bookdinner;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;


@SpringBootApplication
public class BookdinnerApplication {

    public static void main(String[] args) {
        SpringApplication.run(BookdinnerApplication.class, args);
    }
    
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*");
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedMethod("*");
        return corsConfiguration;
    }
    /**
     * 跨域過濾器
     * @return
     */
    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig()); // 4
        return new CorsFilter(source);
    }

}

將代碼編寫完后,重啟后台服務,便可以解決同源策略問題,此時便可以訪問后台的接口。

此方法可行,筆者親身嘗試過

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM