1.先來說說跨域原理: 跨域原理簡單來說就是發起跨域請求的時候,瀏覽器會對請求域返回的響應信息檢查HTTP頭,如果Access-Control-Allow-Origin包含了自身域,則允許訪問,否則報錯. 2.如何解決跨域問題 2.1 使用@CrossOrigin註解 ①該註解可以使用在方法和類上, ...
1.先來說說跨域原理:
跨域原理簡單來說就是發起跨域請求的時候,瀏覽器會對請求域返回的響應信息檢查HTTP頭,如果Access-Control-Allow-Origin包含了自身域,則允許訪問,否則報錯.
2.如何解決跨域問題
2.1 使用@CrossOrigin註解
①該註解可以使用在方法和類上,使用在方法上表示只對該方法生效.
@CrossOrigin(origins = {"http://localhost:8080", "null"})
@GetMapping("/hello")
public String say(){
return "hello SpringBoot";
}
②該註解使用在類上是,表示對該類聲明所有介面都有效.
③如果需要添加全局配置,可以寫一個配置類,繼承WebMvcConfigurerAdapter類(不推薦,在SpringBoot2.0和Spring5.0以後,WebMvcConfigurerAdapter已被廢棄);
④.可以繼承 WebMvcConfigurationSupport ,重寫 addCorsMappings 方法.
@Configuration
public class CorsConfigration extends WebMvcConfigurationSupport {
@Override
protected void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/hello/**")//限定訪問路徑為/hello
.allowedOrigins("http://www.baidu.com")//允許來自www.baidu.com的跨域訪問
.allowedMethods("POST","GET");//限定訪問方法是POST或者GET
}
}
⑤.可以實現 WebMvcConfigurer 介面實現 addCorsMappings 方法.同上
附上IDEA重寫快捷鍵ctrl+o.