我正在尝试从Firefox浏览器下载二进制数据。我的应用程序基于react和redux并使用axios作为我的HTTP客户端。
我必须发送
xhr.open()
之前的responseType= arraybuffer
以下实施无效
axios({
url:`http://api.demo6.test.com:8080/resources/v1/${dObj.payload.surveyId}`,
responseType: 'arraybuffer',
method: 'post',
data: dObj.payload.filterData,
headers: {
"Accept": "application/vnd.ms-excel",
"Content-Type": "application/json",
"X-Bazaarify-Session-Token": "cfff-7-07f13399abed" //token
}
}).then(function(response) {
// const y = yield put(surveyResponseDowloadComplete({
// data: response.data
// }));
let blob = new Blob([response.data], {type: "application/vnd.ms-excel"});
let link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
link.download = "test.xls";
link.click();
console.log(response);
//response.data.pipe(fs.createWriteStream('ada_lovelace.jpg'))
});
如何使用axios进行操作?
答案 0 :(得分:1)
这是一个使用axios下载二进制数据的简单传奇:
function * downloadFileSaga(url) {
const response = yield axios.get(url, {
responseType: 'arraybuffer'
})
console.log(response.data); // arraybuffer
}
然后,您可以使用Blob或FileReader进一步使用arraybuffer。