如何从 ajax post 请求中获得响应 headers
How to get response headers from ajax post request
我想检索服务器发送的响应 headers。但是我越来越空 object。我可以在 chrome 开发工具中看到响应 headers,但无法从 javascript.
中获取它们
(我正在为 xhr 请求使用 isomorphic-fetch 库。)
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
})
这不是重复的
How to get Response headers in AJAX
我没有使用 jQuery.
问题出在我的 back-end 服务器 CORS 配置上。
我正在使用 spring 启动,所以为了将自定义 headers 传递到 xhr 响应中,我需要按以下方式配置 spring 启动应用程序
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.exposedHeaders("MyHeader");
}
};
}
我想检索服务器发送的响应 headers。但是我越来越空 object。我可以在 chrome 开发工具中看到响应 headers,但无法从 javascript.
中获取它们(我正在为 xhr 请求使用 isomorphic-fetch 库。)
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
})
这不是重复的 How to get Response headers in AJAX 我没有使用 jQuery.
问题出在我的 back-end 服务器 CORS 配置上。 我正在使用 spring 启动,所以为了将自定义 headers 传递到 xhr 响应中,我需要按以下方式配置 spring 启动应用程序
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.exposedHeaders("MyHeader");
}
};
}