在Ember的AJAX Post之后没有文件下载

时间:2015-07-15 19:16:53

标签: javascript jquery ajax http ember.js

我在我的一个ember控制器中有一个AJAX Post请求到Node.js服务器:

$.ajax({
          type: "POST",
          url: "https://localhost/api/report",
          contentType: "application/json",
          data: payload,
          headers: {"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
                    "Cache-Control": "no-cache",
                    "Pragma": "no-cache"
                    }
        });

Post请求成功并返回响应头:

Access-Control-Allow-Origin:*
Connection:keep-alive
Content-Disposition:attachment; filename="report.pdf"
Content-Type:application/pdf
Date:Wed, 15 Jul 2015 19:11:23 GMT
File-Extension:pdf
Number-Of-Pages:1
Transfer-Encoding:chunked
Vary:Origin
X-Powered-By:Express
X-XSS-Protection:0

此响应应在浏览器中启动文件下载,但没有任何反应。我已经从我的Ember应用程序外部对同一位置测试了相同的请求,并成功启动了下载。

我的请求/回复有什么问题?我对Ember说错了吗?

1 个答案:

答案 0 :(得分:4)

这不是Ember的问题,这是javascript的一个问题。您无法发出启动文件下载的ajax请求。但是,你可以创建一个iframe,一个表单,发布到iframe,然后依次触发文件下载。

见: