Javascript Ext.Ajax.request如何在get操作中设置响应头
我使用的是ExtJS4.1,我想从url获取一个文件并下载到正确的位置。 我只想设置响应头 我想将“内容类型”设置为不同的值(例如“应用程序/强制下载”)。这对我来说是必要的,否则firefox不会将文件保存到下载目录 这是我的示例代码。错误在哪里/我必须在哪里将信息添加到响应标题Javascript Ext.Ajax.request如何在get操作中设置响应头,javascript,firefox,extjs,extjs4,extjs4.1,Javascript,Firefox,Extjs,Extjs4,Extjs4.1,我使用的是ExtJS4.1,我想从url获取一个文件并下载到正确的位置。 我只想设置响应头 我想将“内容类型”设置为不同的值(例如“应用程序/强制下载”)。这对我来说是必要的,否则firefox不会将文件保存到下载目录 这是我的示例代码。错误在哪里/我必须在哪里将信息添加到响应标题 var certurl = 'http://' + myurl +'/myfile.groovy'; Ext.Ajax.request({ method : 'GET',
var certurl = 'http://' + myurl +'/myfile.groovy';
Ext.Ajax.request({
method : 'GET',
url : 'http://' + myurl +'/myfile.groovy', //this file exixst!!!
success : function(response, opts) {
var link = document.createElement("a");
var fileName = 'myfile.groovy'
link.download = fileName;
link.href = certurl;
link.click();
},
failure : function(response, opts) {}
});
在哪里设置响应头?在服务器中。您可以从客户端操作的头文件只有请求的头文件。我从您的代码中可以理解,您正在创建一个链接并“单击”以尝试触发文件下载。您是否试图使用Ajax请求触发文件下载?是的,正确@rixo我没有设置实际的响应头。我认为(这是真的吗??)框架为我设置了它们,但defeult头对我来说并不好。我使用ajax只是为了创建一个链接,并通过编程方式单击它;该文件位于tomcat目录中的已知位置,因此我不知道在哪里设置标题…我认为您应该只使用
document.location='http://'+myurl+'/myfile.groovy'
这是浏览器行为,您无法更改它。唯一的方法是更改服务器上的“内容类型”。