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上