解决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的时候是两次请求,后面都是一次请求。

看起来清爽多了!

 

你可能感兴趣的:(前端Vue)