Javascript 否';访问控制允许原点';请求的资源上存在标头。原产地';http://localhost:4200' 因此,不允许访问

Javascript 否';访问控制允许原点';请求的资源上存在标头。原产地';http://localhost:4200' 因此,不允许访问,javascript,spring,angular,rest,Javascript,Spring,Angular,Rest,我从http服务调用了SpringRESTWeb服务。我正在调用get方法。我得到以下例外 加载失败:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许对源“”进行访问。 我在客户端和服务器端添加了如下标题,但仍然存在错误 客户端: let headers= new Headers(); headers.append('Access-Control-Allow-Headers', 'Content-Type,application/json');

我从http服务调用了SpringRESTWeb服务。我正在调用get方法。我得到以下例外

加载失败:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许对源“”进行访问。

我在客户端和服务器端添加了如下标题,但仍然存在错误

客户端:

let headers= new Headers();
 headers.append('Access-Control-Allow-Headers', 'Content-Type,application/json');
 headers.append('Access-Control-Allow-Methods', 'GET');
 headers.append('Access-Control-Allow-Origin', 'http://localhost:4200');
 let options = new RequestOptions({ headers: headers });
this.http.get("http://127.0.0.1:8080/SpringRestExample/rest/emp/dummy",options).subscribe(data => {
  console.log(data);
服务器端

httpResponse.setHeader("Access-Control-Allow-Origin", "http://localhost:4200");
        httpResponse.setHeader("Access-Control-Allow-Methods", "GET");
        httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type,'application/json'");

有人知道解决方案吗?

删除客户端标题并添加

httpResponse.setHeader("Access-Control-Allow-Origin", "*");
到您的服务器端代码

我有一个用于CORS的spring引导配置,可以正常工作:

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("POST", "OPTIONS", "GET", "PUT", "DELETE")
                .allowedHeaders("*")
                .allowCredentials(true).maxAge(3600);
    }
}

服务器是否在您的本地主机或任何其他系统上运行?您是否尝试过使用
httpResponse.setHeader(“访问控制允许源”,“*”)?如果它能工作,问题可能是您的本地服务器域<代码>客户端-不要在请求中使用响应头-除此之外,它保证了飞行前选项请求,我怀疑您的服务器是否能够处理,因为您显然不了解CORS是如何工作的