Angular经过http发送post请求至SpringBoot的Controller,因为同源策略的保护,遇到跨域问题:web
• 源(origin)就是协议(http)、域名(localhost)和端口号(8080),若地址里面的协议、域名和端口号均相同则属于同源spring
解决方法:SpringBoot增长跨域请求支持跨域
一:全局配置(推荐)app
package com.example.example1.Default; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * Created by BLIT on 2019/3/7. */ @Configuration @EnableWebMvc public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { //设置容许跨域的路径 registry.addMapping("/**") //设置容许跨域请求的域名 .allowedOrigins("*") //也能够指定域名 .allowedOrigins("http://192.168.0.0:8080","http://192.168.0.1:8081") //是否容许证书 再也不默认开启 .allowCredentials(true) //设置容许的方法 .allowedMethods("*") //跨域容许时间 .maxAge(3600); } }
二:局部配置ide
添加注解:@CrossOrigin(origins = {"http://localhost:4200","null"})能够注解在单个方法上,也能够注解在整个controller上