本篇内容主要讲解“Jquery Ajax请求文件下载操作失败的原因以及解决方案”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Jquery Ajax请求文件下载操作失败的原因以及解决方案”吧!
创新互联-专业网站定制、快速模板网站建设、高性价比康乐网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式康乐网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖康乐地区。费用合理售后完善,10余年实体公司更值得信赖。
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。
废话少说,直接进入正题,我们先来分析一下失败的原因
一、失败的原因
那是因为response原因,一般请求浏览器是会处理服务器输出的response,例如生成png、文件下载等,然而ajax请求只是个“字符型”的请求,即请求的内容是以文本类型存放的。文件的下载是以二进制形式进行的,虽然可以读取到返回的response,但只是读取而已,是无法执行的,说白点就是js无法调用到浏览器的下载处理机制和程序。
二、解决方案
1)可以使用jquery创建表单并提交实现文件下载;
var form = $("
2)可以直接使用a标签实现文件下载;
3)使用隐藏iframe或新窗体解决。
PS:AJAX请求 $.ajax方法的使用
使用jQuery的$.ajax方法可以更为详细的控制AJAX请求。它在AJAX请求上施加细粒度级别的控制。
$.ajax方法语法
$.ajax(options) | |
参数 | |
options | (对象)一个对象的实例,其属性定义这个操作的参数。详情见下表。 |
返回值 | XHR实例 |
options详细范围值
名称 | 类型 | 描述 |
url | 字符串 | 请求的url地址 |
type | 字符串 | 将要使用的HTTP方法。通常是POST或GET。如果省略,则默认为GET |
data | 对象 | 一个对象,其属性作为查询参数而传递请求。如果是GET请求,则把数据作为查询字符串传递;如果是POST请求,则把数据作为请求体传递。在这两种情况下,都是由$.ajax()实用工具函数来处理值的编码 |
dataType | 字符串 | 一个关键字,用来标识预期将被响应所返回的数据的类型。这个值决定再把数据传递给回调函数之前(如果有)进行什么后续处理。有效值如下: xml-响应文本被解析为XML文档,而作为结果的XML DOM被传递给回调函数 html-响应文本未经处理就被传递给回调函数。在已返回HTML片段内的任何 服务端主要代码: protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { if (Request["id"] != null && !string.IsNullOrEmpty(Request["id"].ToString())) { //启用该句会引发ajax超时异常 // System.Threading.Thread.Sleep(3000); Response.Write(GetData(Request["id"].ToString())); } } } protected string GetData(string id) { string str = string.Empty; switch (id) { case "1": str += "This is Number 1"; break; case "2": str += "This is Number 2"; break; case "3": str += "This is Number 3"; break; default: str += "Warning Other Number!"; break; } return str; } 运行程序,结果如图: 到此,相信大家对“Jquery Ajax请求文件下载操作失败的原因以及解决方案”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习! 网站名称:JqueryAjax请求文件下载操作失败的原因以及解决方案 本文链接:http://wtcwzsj.com/article/gpsdpo.html
Copyright © 2009-2022 www.wtcwzsj.com 青羊区广皓图文设计工作室(个体工商户) 版权所有 蜀ICP备19037934号 |