本文主要是介绍微服务后台,多地配置跨域引起的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这几天遇到个问题,我在网关层做了跨域,每个微服务的controller上又有跨域注解,这时候发现了一个奇怪的问题,前端能够发送正常发送请求到后台,而后台却不能够正常返回相应,仔细查看后发现是两个地方都做了跨域引起的,一般的做法是网关上解决跨域即可,
参考代码如下:
package com.rocwo.rwshop.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;/*** @Description 跨域配置* 页面访问域名和后端接口地址的域名不一致时,会先发起一个OPTIONS的试探请求* 如果不设置跨域的话,js将无法正确访问接口,域名一致的话,不存在这个问题* @Author chenjian* @Date 2019/7/11 16:30**/
@Configuration
public class CrossDomainConfig {/*** @Description 跨域支持* @Author zhanghaiyong* @Date 2019/7/11 16:30* @Param []* @Return org.springframework.web.filter.CorsFilter**/@Beanpublic CorsFilter corsFilter() {final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();final CorsConfiguration config = new CorsConfiguration();config.setAllowCredentials(true); // 允许cookies跨域config.addAllowedOrigin("*");// #允许向该服务器提交请求的URI,*表示全部允许config.addAllowedHeader("*");// #允许访问的头信息,*表示全部config.setMaxAge(18000L);// 预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了config.addAllowedMethod("*");// 允许提交请求的方法,*表示全部允许source.registerCorsConfiguration("/**", config);return new CorsFilter(source);}}
这篇关于微服务后台,多地配置跨域引起的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!