请问,使用ajax成功取一出个文档对象,但怎样才能下载,可以在请求时自动下载吗?

ajax请求如下:return$.ajax({xhr.setRequestHeader("Accept","application/pdf");},contentType... ajax请求如下:
return $.ajax({ xhr.setRequestHeader("Accept", "application/pdf"); }, contentType: 'application/json; charset=utf-8', type: requestType, url: urlToCall, success: function(data){ s(data); }, error: function(xhr, type){ console.log(type); console.log('Ajax error! ' + xhr.statusText + ' HTTP Response: ' + xhr.status); f(xhr.status); }});
其中s(data),中data就是成功返回的文档对象,现在不需要返回,直接下载。。求教,各位大侠能指点一二,在下感激不尽!!
代码有点乱,下面重新放上:return $.ajax({
xhr.setRequestHeader("Accept", "application/pdf"); },
contentType: 'application/json; charset=utf-8',
type: requestType,
url: urlToCall,
success: function(data){
s(data); },
error: function(xhr, type){
console.log(type); console.log('Ajax error! ' + xhr.statusText + ' HTTP Response: ' + xhr.status);
f(xhr.status);}});
展开
 我来答
百度网友8ad6d4692
2014-01-14 · TA获得超过135个赞
知道小有建树答主
回答量:123
采纳率:100%
帮助的人:51.9万
展开全部
ajax 返回一个url 然后用 .window.location.target="_ablank" ; window.localtion.href =url
$.ajax({ url : "../../web/downloadServlet?action=downLoadFile&fileName="+fileName, type : "POST", timeout : 10000, dataType : "text", async : true, success : function(data) { window.localtion.href =data; // data 为url
}, error : function(XMLHttpRequest, textStatus, errorThrown) { //alert(textStatus + ":" + errorThrown); if (textStatus != "timeout") { //clearInterval(intervalId); //alert("Get info error!"); //reInit(); } } });
追问
不好意思来晚了,但是ajax返回的data不是一个连接,而是一个文件对象,要是能返回连接就再好不过了。还请老兄指点!谢谢
追答
不知道你的后台是如何返回的,如果是servlet 写出来的,这个得用 jsp(而不是ajax) 来保存
或者
使用javascript创建文件
Demo: http://www.cnblogs.com/hanwater/archive/2009/11/24/1609526.html
http://hi.baidu.com/lee_zhang/item/916185f756848f49922af2dc
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
萧瑟秋风_cyz
2014-01-10 · 超过26用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:66.7万
展开全部
可以让ajax请求一个php文件,在php文件里面可以让浏览器下载这个文件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaoapk
2014-01-10 · TA获得超过3771个赞
知道大有可为答主
回答量:1343
采纳率:40%
帮助的人:1616万
展开全部
不使用ajax不行吗? 直接用window.open(urlToCall);
更多追问追答
追问
是向数据库拿数据的,使用ajax可以添加请求的header,这样貌似可以更好的控制request,具体原委我也道不上来。。
追答
如果直接返回pdf文件的话,data应该是二进制文件。
最好是打开新页下载。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式