要解决Angular和Spring之间的CORS策略问题,你可以按照以下步骤进行操作:
@CrossOrigin
注解,指定允许跨域请求的来源和方法。@Configuration
public class CorsConfig {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:4200") // 允许的来源
.allowedMethods("GET", "POST", "PUT", "DELETE") // 允许的方法
.allowedHeaders("*") // 允许的头部信息
.allowCredentials(true); // 允许携带身份验证信息
}
};
}
}
withCredentials: true
和headers: { 'Content-Type': 'application/json' }
。import { HttpClient, HttpHeaders } from '@angular/common/http';
@Injectable()
export class MyService {
constructor(private http: HttpClient) {}
getData() {
const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
return this.http.get('http://localhost:8080/api/data', { withCredentials: true, headers });
}
}
通过这些步骤,你可以解决Angular和Spring之间的CORS策略问题,并允许跨域请求。