【发布时间】:2017-03-09 22:54:11
【问题描述】:
我想通过调用coldfusion函数的ajax get请求下载文件,但问题是在开发工具的“网络”选项卡中我可以“看到”内容,但它没有下载。
这是我存储在cfc中的coldfusion函数:
<cffunction name="download" access="remote" output="true">
<cfset file_name = "Test.xlsx">
<cfheader name='Content-Disposition' value='attachment; filename=#file_name#' charset='utf-8'>
<cfcontent type="application/msexcel" file="#file_name#" deletefile="false">
</cffunction>
这是我的 ajax 调用:
<script>
$.ajax({
method: "GET",
url: "ses/dev.cfc",
data: {
method: 'download'
},
cache: false,
success: function(data) {
console.log("Downloaded");
},
error: 'Not downloaded'
});
</script>
这是我的结果: http://imgur.com/FmPhlKx
【问题讨论】:
-
如果你想让它把文件下载到你的电脑上,你需要向服务器发出 HTTP GET 请求,而不是 XMLHttpRequest (Ajax) GET。
-
我认为您需要将其作为 .cfm 而不是作为 .cfc 中的函数来执行。
-
您为什么要通过在方程式中添加 javascript 来使简单的文件下载问题复杂化?
-
@DanBracuk 请问你会怎么做?
-
我会有一个 Cold Fusion 页面 (.cfm),其中最后两行代码是
<cfheader>和<cfcontent>标签。
标签: javascript ajax coldfusion cfml coldfusion-11