2017-04-19 193 views
-1

我想检索服务器发送的响应头。但我得到空的物体。我可以在Chrome开发工具中看到响应标题,但无法从JavaScript获取它们。如何从ajax发布请求获取响应头

(我用的同构取为XHR请求LIB)

 fetch("http://my.cors.url/postsomedata", { 
      method: 'POST', 
      headers: { 
       Accept: 'application/json', 
       'Content-Type': 'application/json', 
      }, 
      body: JSON.stringify(myjsobject), 
     }) 
     .then(response => response.headers) 
     .then((headers) => { 
      console.log(headers); // empty object 
     }) 

这不是我不使用jQuery How to get Response headers in AJAX dublicate。

+0

【如何获得响应头在AJAX(HTTP的可能重复:// stackoverflow.com/questions/34429628/how-to-get-response-headers-in-ajax) –

+1

如果你无法从'response.headers'中得到它,你就无法得到它。这闻起来像是一个CORS问题。 –

+0

@KevinB,但为什么我可以看到他们在铬开发工具? – Vovan

回答

0

问题出在我的后端服务器CORS配置上。 我使用的春天开机,所以为了做通定制标题为XHR响应,我需要在以下方式配置春季启动应用程序

@Bean 
public WebMvcConfigurer corsConfigurer() { 
    return new WebMvcConfigurerAdapter() { 
     @Override 
     public void addCorsMappings(CorsRegistry registry) { 
      registry.addMapping("/**").allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") 
        .exposedHeaders("MyHeader"); 
     } 
    }; 
}