vue+springboot上线跨域问题

说明:
1.不是本地开发,本地开发vue配置本地代理即可,问题是线上
2.接口已经做了跨域处理,这里好像是浏览器直接拦死了后台没有请求日志

一些处理及问题:
1.接口(springboot项目且后台已经处理了跨域问题)地址为A域名地址,现在vue的项目部署在B域名地址上,B去请求A是会有跨域问题,是否不用配置nginx代理去解决!查了好多资料结果应该是否。

img

2.用nginx配置代理,(可以跑通,不会有跨域问题了),请求会使用http2协议(可能不用代理也会是h2协议?),而这个协议要求请求头参数小写(传的参数大写也会自动转小写),那么就导致后台拿请求头时拿不到了,前端还有没有途径可以处理,如果不能的话就必须后台接口做大小写兼容的处理了

img

试试看
springboot 解决跨域问题工具类

package com.imooc.api.config;

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 {

public CorsConfig() {
}

@Bean
public CorsFilter corsFilter() {
    // 1. 添加cors配置信息
    CorsConfiguration config = new CorsConfiguration();
    config.addAllowedOrigin("*");
    // 设置是否发送cookie信息
    config.setAllowCredentials(true);
    // 设置允许请求的方式
    config.addAllowedMethod("*");
    // 设置允许的header
    config.addAllowedHeader("*");
    // 2. 为url添加映射路径
    UrlBasedCorsConfigurationSource corsSource = new UrlBasedCorsConfigurationSource();
    corsSource.registerCorsConfiguration("/**", config);
    // 3. 返回重新定义好的corsSource
    return new CorsFilter(corsSource);
}

}

需要被扫描到 @ComponentScan(basePackages = {"com.imooc"})

是https协议还是http。如果springboot接受的是https,那么需要配置