@Configuration public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://localhost:4200")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("*")
.allowCredentials(true)
.maxAge(3600);
}
}
其中,allowedOrigins 方法指定了允许访问的域名或 IP 地址,allowedMethods 方法指定了允许访问的请求方法,allowedHeaders 方法指定了允许访问的请求头,allowCredentials 方法指定了是否支持发送 Cookie,maxAge 方法指定了 CORS 预检结果的有效期限。 3. 在前端代码中使用 Angular 提供的 HttpClient 模块发送请求时,设置请求头中的 Content-Type 和 Accept 字段,以与后端接口对接。例如:
import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Observable } from 'rxjs';
@Injectable() export class MyService {
private apiUrl = 'http://localhost:8080/api/';
constructor(private http: HttpClient) {}
getData(): Observable {
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Accept': 'application/json'
})
};
return this.http.get(this.apiUrl + 'data', httpOptions);
}
}
其中,httpOptions 对象在请求头中设置了 Content-Type 和 Accept 字段,两者的值都为 application/json。该设置适用于大多数使用 RESTful API 的情况。如果后端的接口使用了其他的格式,则需要根据实际情况进行修改。