在localhost上启用Spring和Angular 2之间的CORS,可以通过以下步骤实现:
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:4200") // 允许访问的源
.allowedMethods("GET", "POST", "PUT", "DELETE") // 允许的HTTP方法
.allowedHeaders("*") // 允许的请求头
.allowCredentials(true); // 允许发送凭证信息(如Cookie)
}
}
上述代码中,allowedOrigins
指定了允许访问的源,这里设置为Angular应用的地址http://localhost:4200
。allowedMethods
指定了允许的HTTP方法,这里设置为常用的GET、POST、PUT和DELETE。allowedHeaders
指定了允许的请求头,这里设置为*
表示允许所有请求头。allowCredentials
设置为true
表示允许发送凭证信息,如Cookie。
Access-Control-Allow-Origin
字段来实现CORS。import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
@Injectable()
export class MyService {
constructor(private http: HttpClient) { }
getData() {
const headers = new HttpHeaders({
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': 'http://localhost:8080' // 允许访问的源
});
return this.http.get('http://localhost:8080/api/data', { headers });
}
}
上述代码中,Access-Control-Allow-Origin
字段指定了允许访问的源,这里设置为Spring应用的地址http://localhost:8080
。
总结: 通过在Spring中配置CORS过滤器,并在Angular中添加请求头,可以在localhost上启用Spring和Angular 2之间的CORS。这样,Angular应用就可以跨域访问Spring应用的资源了。
腾讯云相关产品推荐:
领取专属 10元无门槛券
手把手带您无忧上云