在默认情况下,浏览器限制了对跨域请求响应的访问权限,阻止了读取敏感的响应头信息(例如 Content-Disposition
)。这是由于跨域请求的安全策略所决定的。
如果你想在跨域请求中获取到 Content-Disposition
头信息,需要在服务器端进行一些配置。
首先,确保服务器返回的响应中包含 Access-Control-Expose-Headers
头,并将 Content-Disposition
添加到其中。这样浏览器才会在跨域请求成功后暴露该头信息。
在服务器端配置响应头,示例代码(使用 Express 框架):
app.use(function(req, res, next) {
res.header('Access-Control-Expose-Headers', 'Content-Disposition');
next();
});
以上代码将在每个响应头中添加 Access-Control-Expose-Headers: Content-Disposition
,使浏览器能够获取到 Content-Disposition
头信息。
在客户端使用 Axios 发起跨域请求时,确保你在 response
对象中可以从 headers
属性中获取到 Content-Disposition
头信息。
axios.get('http://example.com/api', { crossDomain: true })
.then(response => {
const contentDisposition = response.headers['content-disposition'];
// 在这里可以访问到 Content-Disposition 头信息
})
.catch(error => {
// 处理错误
});