文件下载的AJAX响应采用编码格式。

时间:2014-06-26 20:52:07

标签: jquery ajax excel

我做了一个ajax调用

var formData = new FormData();
formData.append('name', 'John');
formData.append('company', 'ABC');

$.ajax({
  url: url,
  data: formData,
  processData: false,
  contentType: false,
  success: function(data){
     window.location.href = data.URL;   // data does not have URL attribute.
  },
  error: function(err){}
});

在这里,理想情况下我应该将excel文件下载作为响应。

然而,

success: function(data){

}

这里我得到的data包含一堆编码值,我可以在浏览器控制台中看到。我如何在这里获取下载URL。

2 个答案:

答案 0 :(得分:0)

AJAX旨在用于发送/检索数据,因此显然您将获得成功数据。

您应该使用普通表单进行POST,并确保服务器正在设置正确的标题。

<form method="post" action="/path/to/excel/file">
    ...
</form>

表单生成POST后,如果您的浏览器不支持查看excel文件,则表示服务器提供数据和HEADER将开始下载。

答案 1 :(得分:0)

出于安全原因,您可以下载带有保存在硬盘驱动器上的ajax的文件。 之前的问题涉及同一问题: Download a file by jQuery.Ajax