javascript - 在 Ember 中使用 AJAX 发布后没有文件下载

标签 javascript jquery ajax http ember.js

我的一个 ember Controller 中有一个 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?

最佳答案

这不是 Ember 的问题,而是 javascript 的问题。您不能发出像这样开始文件下载的 ajax 请求。但是,您可以创建一个 iframe,一个表单,发布到 iframe,这将触发文件下载。

参见:

关于javascript - 在 Ember 中使用 AJAX 发布后没有文件下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31439167/

相关文章:

javascript - XAMPP问题?保存后代码没有改变

ruby-on-rails - $.AJAX 用于在 Rails 中创建多个记录

javascript - Three.js 将 StereoEffect 与 FXAA ShaderPass 相结合

javascript - Bootstrap 4 - 按钮上的下拉菜单和工具提示?

javascript - 我可以将数组从 Google 电子表格传递到 Google App Script 方法吗?

javascript - 延迟的 jQuery AJAX 请求不运行 done() 回调函数

jquery - AJAX 仅使用 jQuery 填充最终的 JSON 对象?也使用了 Circliful jQuery 插件

javascript - 如何从客户端触发所有验证控件?

javascript - 使用 Javascript 和 JSON 构建树

javascript - 仅在第一次使用 jQuery 时分离事件