JavaScript在浏览器中下载提示

时间:2015-12-22 08:29:16

标签: javascript node.js download superagent

我只是尝试从服务器下载文件并在浏览器中提示下载,供用户查看。

我现在拥有的: 客户端

export function downloadTemplateAction(questionnaire) {
  return dispatch => {
    dispatch(downloadTemplateRequestAction(questionnaire));

    return request
      .get(downloadGETUrl)
      .end((err, res) => {
        if (err) {
          console.log("Download ERROR", err)
          dispatch(downloadTemplateFailureAction(err, questionnaire));
        } else {
          console.log("Download Success", res.body)
          dispatch(downloadTemplateSuccessAction(res.body, questionnaire));
        }
      });
  }
}

服务器:

export function downloadTemplateDocument(req, res){
    res.download('template/Example.docx');
    res.end();
}

我面临两个问题:

首先:当尝试通过客户端功能下载文件时,响应正文为空,但成功后再也没有了。

第二次:通过浏览器localhost:3002 / api / download联系get API时,下载有效,但收到的文件为空。应该有文字。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

浏览器无法提示下载进度,因为您的请求是通过XMLHttpRequest发送的。 浏览器需要对文件进行物理访问才能知道任何下载。

您可以使用download attribute告诉浏览器下载链接的资源。

original answer