说明:
1.不是本地开发,本地开发vue配置本地代理即可,问题是线上
2.接口已经做了跨域处理,这里好像是浏览器直接拦死了后台没有请求日志
一些处理及问题:
1.接口(springboot项目且后台已经处理了跨域问题)地址为A域名地址,现在vue的项目部署在B域名地址上,B去请求A是会有跨域问题,是否不用配置nginx代理去解决!查了好多资料结果应该是否。
2.用nginx配置代理,(可以跑通,不会有跨域问题了),请求会使用http2协议(可能不用代理也会是h2协议?),而这个协议要求请求头参数小写(传的参数大写也会自动转小写),那么就导致后台拿请求头时拿不到了,前端还有没有途径可以处理,如果不能的话就必须后台接口做大小写兼容的处理了
试试看
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,那么需要配置