Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery和coldfusion下载ajax文件_Jquery_Ajax_Coldfusion_Download - Fatal编程技术网

使用jquery和coldfusion下载ajax文件

使用jquery和coldfusion下载ajax文件,jquery,ajax,coldfusion,download,Jquery,Ajax,Coldfusion,Download,当点击处理从服务器下载文件的coldfusion页面时,我有一个链接。当我直接在url中访问该文件时,它会正常工作,因此我知道该部分正在工作。我的下一步是引入ajax,这样交互对用户来说是无缝的。这是我的带有ajax调用的事件处理程序(在初始页面加载时调用事件处理程序): 但我什么也得不到。这是我第一次使用jQuery的.ajax()。我通常使用.get()和.load()。我已经检查了文档,我的语法看起来是正确的。有人看到我为什么不能在浏览器提示下保存文件的问题了吗?谢谢 不能通过Ajax(X

当点击处理从服务器下载文件的coldfusion页面时,我有一个链接。当我直接在url中访问该文件时,它会正常工作,因此我知道该部分正在工作。我的下一步是引入ajax,这样交互对用户来说是无缝的。这是我的带有ajax调用的事件处理程序(在初始页面加载时调用事件处理程序):

但我什么也得不到。这是我第一次使用jQuery的.ajax()。我通常使用.get()和.load()。我已经检查了文档,我的语法看起来是正确的。有人看到我为什么不能在浏览器提示下保存文件的问题了吗?谢谢

不能通过Ajax(XMLHTTPRequest)触发“另存为”对话框。Ajax调用将数据从服务器返回到javascript应用程序,这就是使用Ajax的关键所在。下载文件并将其保存在计算机上只是另一个用例——这是一个“浏览器作业”,而不是你的

我通过在页面上添加一个隐藏的iframe解决了这个“问题”,这将触发一个“另存为…”对话框,用户不会注意到它。这就像在另一个选项卡中打开一个地址,只是它被隐藏了

$('body').append(
    $('<iframe>', { 
        src: 'test.cfm?name=john' 
    }).hide()
);
$('body')。追加(
$('', { 
src:'test.cfm?name=john'
}).hide()
);
不能通过Ajax(XMLHTTPRequest)触发“另存为”对话框。Ajax调用将数据从服务器返回到javascript应用程序,这就是使用Ajax的关键所在。下载文件并将其保存在计算机上只是另一个用例——这是一个“浏览器作业”,而不是你的

我通过在页面上添加一个隐藏的iframe解决了这个“问题”,这将触发一个“另存为…”对话框,用户不会注意到它。这就像在另一个选项卡中打开一个地址,只是它被隐藏了

$('body').append(
    $('<iframe>', { 
        src: 'test.cfm?name=john' 
    }).hide()
);
$('body')。追加(
$('', { 
src:'test.cfm?name=john'
}).hide()
);

谢谢您的回答!是否有文档可以解释为什么会这样?另外,这意味着表单提交,对吗?我已经在其他地方提交了表格:/I页面上也已经有了一个iframe。以这种方式选择元素会移动iframe,而不会克隆它?我不能那样做。如果我选择了我已有的iframe,并设置了src属性,这会起作用吗?关于为什么不使用$('')选择现有的iframe,谢谢你的回答!是否有文档可以解释为什么会这样?另外,这意味着表单提交,对吗?我已经在其他地方提交了表格:/I页面上也已经有了一个iframe。以这种方式选择元素会移动iframe,而不会克隆它?我不能那样做。如果我选择我已经拥有的iframe,并设置src属性,这会起作用吗?关于为什么不使用$('')选择现有的iframe: