解決跨域問題的后端解決方案


理解跨域,我們首先應該理解web的同源策略。

什么是同源策略?

  • 它是瀏覽器的一個安全策略,就是限制當前源與其它源進行交互,這樣就能阻隔惡意文檔和減少可能被攻擊的媒介。

何為同源?

  • 若有兩個URL,只有協議(protocol)、域名(host)、端口號(port),三者相同時,才能被稱之為同源。

何為跨域訪問?

  • 當要在不同源之間進行數據交互時,這個過程跨域就可稱之為跨域訪問。

  • 那我的項目舉個例子(前后端分離項目,開發環境,Vue運行http://localhost:8081,后端運行http://localhost:8080)


    前端登陸頁面的表單數據通過Ajax提交給后端的/login接口進行處理,此時就是在跨域訪問

后端解決跨域的一種方案

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

@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry corsRegistry){
        corsRegistry.addMapping("/**")//允許跨域的訪問路徑
                    .allowedOrigins("http://localhost:8081")//允許跨域訪問的源
                    .allowedMethods("POST","GET","PUT","OPTIONS","DELETE")//允許請求方法
                    .allowCredentials(true)//是否允許發送cookie
                    .maxAge(3600)//預檢的間隔時間
                    .allowedHeaders("*");//允許跨域訪問的header
    }
}


免責聲明!

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



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