【发布时间】:2014-08-25 23:48:24
【问题描述】:
我有一个 extjs ajax 函数,它向服务器发送一个表单,该表单返回一个文件以下载正确的 Content-Disposition ="attachment; filename='test.zip'" 标头。可以使用浏览器的正常文件下载窗口下载文件。但是ajax请求的成功回调函数没有被触发,ajax无限等待响应。
有没有办法告诉 ajax 函数文件是否从服务器正确发送?
exportLayer = function(node_id){
Ext.Ajax.request({
method: "GET",
form: "exportForm",
url: "/basqui/layer/shapefile/export/" + node_id + "/",
success: function(r){
html = Ext.decode(r.responseText).html
Ext.get('pageContent').update(html);
},
});
}
【问题讨论】:
-
如果你只是返回网址本身,你可以简单地做
window.location='path/to/download' -
它是一个内存文件,一个使用数据库数据创建的 zip,而不是服务器磁盘上的文件
-
所以跳过 ajax 直接使用
window.location -
ajax用于提交创建文件所需的表单
-
为什么不能直接获取值并将它们添加到 GET 中? ajax 不适用于文件下载。或者只是提交表单,如果它是服务器端的 zipp 输出,浏览器将不会重定向
标签: javascript ajax extjs