我尝试从不同于我的UI服务(不同域)的服务提示下载请求 我正在尝试使用像
这样的东西$.post(url, {param1: 'param1val', param2: 'param2val'})
服务器返回带有文件标题的CSV,但是我收到的回复为CSV文本,并且不确定如何(如果可以)将其保存为文件。< / p>
澄清可能会有所帮助:
我对服务器的回复是
Future(Ok.chunked(rowEnumerator.andThen(Enumerator.eof))
.withHeaders(("Content-Description", "File Transfer"), ("Content-Transfer-Encoding", "binary"), ("Access-Control-Allow-Origin","*"))
.as("text/csv").withHeaders(CONTENT_DISPOSITION -> s"attachment; filename=resp.csv", CONTENT_TYPE->"application/x-download"))
答案 0 :(得分:0)
似乎问题是$ .post正在使用AJAX,看起来不可能以这种方式下载文件。
解决方案是在文档正文上动态创建一个表单元素,其属性对应于我尝试在$ .post中发送的数据。
var form = document.createElement("form");
form.setAttribute(...); // method, action
// for each data element for POST request
var field = document.createElement("input");
field.setAttribute(...); // type(hidden), key, value
form.appendChild(field);
document.body.appendChild(form)
form.submit()