解決axios+SpringBoot跨域請求兩次訪問的問題

思路參考的這篇博客:解決跨域引起的兩次請求

下來來說一下設置:

後端SpringBoot中需要設置CorsConfig.java這個跨域請求配置類

配置跨域可以參考我的這篇文章:SpringBoot+Vue使用axios解決跨域問題

CorsConfig.java源代碼:

package com.imjie.demo;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;


@Configuration
public class CorsConfig {
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); // 1允許任何域名使用
        corsConfiguration.addAllowedHeader("*"); // 2允許任何頭
        corsConfiguration.addAllowedMethod("*"); // 3允許任何方法(post、get等)
        corsConfiguration.setMaxAge(1800L);// 4.解決跨域請求兩次,預檢請求的有效期,單位爲秒
        return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig()); // 4
        return new CorsFilter(source);
    }
}

解決!因爲感覺設置前端太麻煩~

後端設置一下 預檢請求的有效期,這樣只是第一次訪問次controller的時候是兩次請求,後面都是一次請求。

看起來清爽多了!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章