js如何在下载文件时设置请求头
时间: 2024-09-26 13:14:57 浏览: 31
vue-resouce设置请求头的三种方法
在JavaScript中,特别是在使用Fetch API或XMLHttpRequest (XHR) 下载文件时,你可以通过设置HTTP请求头来定制下载行为。这里以Fetch API为例:
```javascript
// 创建一个fetch请求
const url = 'https://example.com/file-to-download';
const options = {
method: 'GET', // 请求方法,通常用于下载就是GET
headers: { // 设置请求头
'Accept': 'application/octet-stream', // 表示我们要下载文件而不是HTML页面
'Content-Type': 'text/plain; charset=utf-8', // 根据实际文件类型设置
'Cache-Control': 'no-cache', // 避免缓存影响
'Pragma': 'no-cache',
'Authorization': 'Bearer your_token_if_needed', // 如果有需要的话,添加身份验证信息
},
};
fetch(url, options)
.then(response => {
if (!response.ok) {
throw new Error('Failed to download file');
}
return response.blob(); // 转换为Blob以便下载
})
.then(blob => {
const urlCreator = window.URL.createObjectURL(blob); // 创建URL地址用于下载
const aLink = document.createElement('a'); // 创建隐藏的下载链接
aLink.href = urlCreator;
aLink.download = 'file-name'; // 下载文件名
document.body.appendChild(aLink); // 添加到文档中模拟点击
aLink.click();
document.body.removeChild(aLink); // 下载完成移除链接
window.URL.revokeObjectURL(urlCreator); // 取消创建的URL,释放资源
})
.catch(error => console.error('Error downloading file:', error));
```
阅读全文