如何使用Java脚本ajax调用下载TXT文件
how to download txt file with using java script ajax call
我想下载一个文本文件(例如:- something .txt)。当我使用ancor标记时,文件被下载,但我想使用ajax调用下载文件。
HTML代码:<body>
<a href="#" id="exportViewRule">Export</a>
</body>
JavaScript代码:
$("#exportViewRule").click(function(){
$.ajax({
url : "/download/myDir/exportFile",
type : "GET",
contentType : "text/plain",
success : function(data){
alert(data);
}
});
});
java代码:@Path("/myDir")
public class IdnsDataHandler {
@GET
@Path("/exportFile")
@Produces("text/plain")
public Response exportFile(){
File file=new File("/home/cerdik/Desktop/some.text");
ResponseBuilder response=Response.ok((Object)file);
response.header("Content-Disposition","attachment; filename=export-file.text");
return response.build();
}
}
当我使用下面的代码(没有javascript),下载工作。
HTML代码:<body>
<a href="./download/myDir/exportFile" id="exportViewRule">Export</a>
</body>
感谢大家,我找到了另一个解决方案,这种类型的下载方法,现在我没有使用ajax调用,下面显示到我的成功代码
Html:<a id="exportView" style="cursor:pointer">Export</a>
javaScript: $("#exportView").click(function(){
var exportId = $('#serviceRules option:selected').attr("stream");
var TakeHref="./download/myDir/exportFile"+exportId;
document.getElementById("exportView").setAttribute("href", TakeHref);
});
此代码在我的应用程序中成功运行,谢谢大家。
我认为你必须在url后面加上文件的结尾(例如。txt)
$.ajax({
url : "/download/myDir/exportFile.txt",
...
})
您应该使用ajax调用,诀窍是定义dataType然后响应将是.txt文件所包含的内容。
$.ajax({
url : "some-file.txt",
dataType: "text",
success : function (data) {
// set text to preferred DOM
$("THE-DOM").html(data);
}
});
答案是:没有你不能。
AJAX请求在浏览器中呈现的页面中完成。它们请求存储在
XMLHTTPObject
中的文件的内容。content-type
的响应头没有区别,会被浏览器忽略。
更准确地说:
AJAX调用在响应头设置为TEXT/HTML
的页面内执行,这意味着文件的内容是由AJAX请求的。响应头不会被调用重置,因此不会触发下载。
当单击链接时,描述文件内容的响应头由JAVA代码发送到页面,从而产生一个响应,该响应被浏览器视为下载。
如果你真的需要JS干预来改变你的参数,这段代码片段应该做的就是。但这不是一个好方法。
//your JS function to manipulate the url
function downloadFile(){
var url = "/download/myDir/exportFile";//+your extra params
$('#fake').prop({'src':url});
}
<a href="#" onclick="downloadFile()" id="exportViewRule">Export</a>
<iframe name="fake" id="fake" style="display:none;"></iframe>
相关文章:
- 如何在生成下载文件时显示加载动画
- 直接下载文件,而不是从window.open(url)
- 如何使用javascript或html下载PDF格式的填写表单
- Javascript运行php文件,然后下载文件
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在单击href链接的同时下载文件
- 尽管链接成功并已成功下载,但未找到NPM模块
- 通过php页面中的js强制下载txt
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 通过javascript下载文件时设置文件名
- 如何在Edge中下载图像/png数据URI
- Ajax/php创建了一个数组——如何以.txt的形式下载给用户
- C JAVA PHP TXT ..阅读而不是下载
- 写入 html 中的.txt文件,无需下载
- 元刷新下载(txt,ini,css或html)文件
- 如何用javascript将txt文件自动下载到计算机上
- 提示用户下载输出为txt文件
- 如何使用Java脚本ajax调用下载TXT文件
- CRM通过按钮下载txt文件
- 以html(或htm)格式打开文件附件(pdf,xls,txt,doc等),无需下载