之前项目中遇到过前端跨域问题,特此记录便于日后查阅。
前端跨域问题解决方式有很多种,其中一种就是在页面请求的目标服务配置跨域代码,因为我们的项目是前后端分离的,后端统一要通过路由网关来进行请求转发,所以我只需要在路由网关服务配置跨域代码即可,代码如下:
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
@EnableZuulProxy
public class ZuulApplication {
public static void main(String[] args) {
SpringApplication.run(ZuulApplication.class, args);
}
/**
* attention:简单跨域就是GET,HEAD和POST请求,但是POST请求的"Content-Type"只能是application/x-www-form-urlencoded, multipart/form-data 或 text/plain
* 反之,就是非简单跨域,此跨域有一个预检机制,说直白点,就是会发两次请求,一次OPTIONS请求,一次真正的请求
*/
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration confi