jQuery的ajax下载blob文件
乍一听有点蒙,之前用ng和react时也写过类似的功能,但是很顺利(所以忘记具体细节了)。jquery为啥会不行呢?看了一下具体场景,发现原来jq的ajax回调已经把response的数据傻瓜式的以字符串的方式解析了。
查了一下gg,发现国内的解决方案就是在该场景下不实用jq,而是自己手动创建XMLHttpRequest。虽然这个方法很可靠,但之前封装的jq的ajax就不能使用了。
查了查jq的文档,本打算自己根据jq提供的jQuery.ajaxSetup()接口来拓展数据类型,但怎么都搞不定。后来,在github上找到了一个大牛封装好的jq插件。
然后我们就可以这么写了:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>blob demo</title> </head> <body> <img id="img" src="" /> <script src="https://cdn.bootcss.com/jquery/2.2.1/jquery.js" charset="utf-8"></script> <script src="jquery-ajax-blob-arraybuffer.js"></script> <script type="text/javascript"> $.ajax({ url: "./face.jpg", type: "get", dataType: "blob", //扩展出了blob类型 }).done(function(data, status, jqXHR){ var reader = new window.FileReader(); reader.readAsDataURL(data); reader.onloadend = function() { document.getElementById("img").src=reader.result; } }).fail(function(jqXHR, textStatus) { console.warn(textStatus); }); </script> </body> </html>
不过,从该插件的源码上来看,它也是手动构建了一个XMLHttpRequest对象来发送ajax,不过兼容性可能会成为问题。想深究的可以看这里。
以上所述是小编给大家介绍的jQuery的ajax下载blob文件 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
jquery中各个事件执行顺序如下: 1.ajaxStart(全局事件) 2.beforeSend(局部事件) 3.ajaxSend(全局事件) 4.success(局部事件) 5.ajaxSuccess(全局事件) 6.error(局部事件) 7.ajaxError (全局事件) 8.complete(局部事件) 9.ajaxComplete(全局事件) 10.ajaxStop(全局事件) 其中,全局事件可以在ajax相关方法外引用(比如,通过该方式将ajax执行各个阶段的信息显示在页面某个地
-
jQuery ajax方法传递中文时出现中文乱码的解决方法
本文实例讲述了jQuery ajax方法传递中文时出现中文乱码的解决方法.分享给大家供大家参考,具体如下: 使用jQuery的ajax方法,在传递中文时出现中文乱码,按照以前的方法,修改了jquery文件中的ajaxSetting也不好使 复制代码 代码如下: sajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded;charse
-
基于jQuery的ajax方法封装
ajax (ajax开发)简介 AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和XML(标准通用标记语言的子集). AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 在实际的项目里,ajax的应用频率很高
-
jquery 全局AJAX事件使用代码
复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery Ajax - AjaxEvent</title> <script src="../jquery-1.4.3.js" type="text/javascript"></script> <script type="
-
jQuery简单注册和禁用全局事件的方法
本文实例讲述了jQuery简单注册和禁用全局事件的方法.分享给大家供大家参考,具体如下: //jQuery注册ajax全局事件ajaxStart,ajaxStop: $(document).ajaxStart(function(){ $("#background,#progressBar").show(); }).ajaxStop(function(){ $("#background,#progressBar").hide(); }); //ajax请求禁用全局事件
-
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
jQuery中通过ajaxStart()和ajaxStop()两个方法提供了类似的功能.当一个Ajax请求启动时,并且没有其他未完成的Ajax请求时,将调用ajaxStart()方法.同样,ajaxStop()方法则是在所有Ajax请求都完成时调用.这些方法的参数都是一个函数,这个函数将在事件发生时被调用. 例子 复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml" ><head runat="serve
-
jquery实现ajax加载超时提示的方法
本文实例讲述了jquery实现ajax加载超时提示的方法.分享给大家供大家参考,具体如下: index.php <!doctype html> <html> <head> <meta charset="utf-8"/> <title>加载超时</title> <script type="text/javascript" src="http://lib.sinaapp.com/js
-
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
情景 如何在特定的请求上实现"ajaxStart"的效果? 首先,重写Ajax方法的代价太高,仍然可以利用jQuery自身的Ajax Events. Ajax触发的全局事件会像一个标准事件一样传播到所有DOM节点上.层级:jQuery Events > Ajax Events > 自定义Ajax事件. 实现 复制代码 代码如下: Wo = window.Wo || {}; Wo.ajax = { spinner : $([]) ,init : function() { va
-
jQuery的ajax下载blob文件
乍一听有点蒙,之前用ng和react时也写过类似的功能,但是很顺利(所以忘记具体细节了).jquery为啥会不行呢?看了一下具体场景,发现原来jq的ajax回调已经把response的数据傻瓜式的以字符串的方式解析了. 查了一下gg,发现国内的解决方案就是在该场景下不实用jq,而是自己手动创建XMLHttpRequest.虽然这个方法很可靠,但之前封装的jq的ajax就不能使用了. 查了查jq的文档,本打算自己根据jq提供的jQuery.ajaxSetup()接口来拓展数据类型,但怎么都搞不定.
-
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
本文实例讲述了jQuery使用$.ajax进行异步刷新的方法.分享给大家供大家参考,具体如下: 最近要用到jquery进行异步读取数据的功能,jquery提供了许多内置的异步读取函数,给大家演示下最常用的$.ajax用法 在客户端文本框输入一个内容,然后在服务器端返回时间 在DEMO中要用到ashx文件,用于获取服务器的信息 效果图片 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 客户端代码 <%@ Page Language="C#" Au
-
jQuery+ajax简单实现文件上传的方法
本文实例讲述了jQuery+ajax简单实现文件上传的方法.分享给大家供大家参考,具体如下: 可以通过ajax来提交表单,而不会刷新页面.主要使用的方法是 $("#formID").ajaxSubmit()方法. 1.要引入js插件 需要下载的附件:jquery.form.js 2.页面代码: <script src="project/js/jquery.form.js" type="text/javascript"></scr
-
ajax post下载flask文件流以及中文文件名问题
ajax post下载文件 后端返回文件流,flask中可使用 return send_file(文件路径) 返回二进制文件流,在headers中传送文件相关信息(如文件名). 前端使用 URL.createObjectURL()创建创建一个 DOMString URL对象,创建一个 a 节点,将URL对象赋给a节点的 href 属性,最后调用 click() 方法点击该 a 节点即可弹出浏览器下载框. 展示图片 方法同上,将 a 改成 img , href 改成 src 即可,将URL对象写
-
jQuery实现ajax调用WCF服务的方法(附带demo下载)
本文实例讲述了jQuery实现ajax调用WCF服务的方法.分享给大家供大家参考,具体如下: 关于AJAX调用WCF服务分为跨域和不跨域两种方式,今天咱们先介绍下不跨域下的调用方法.DEMO是在VS2008写的. 经过测试与研究,发现AJAX调用WCF服务必须满足以下条件 1.wcf的通讯方式必须使用webHttpBinding 2.必须设置<endpointBehaviors>节点的值 3.服务的实现必须添加标记 复制代码 代码如下: [AspNetCompatibilityRequirem
-
jQuery.Form实现Ajax上传文件同时设置headers的方法
废话不多说了,关于jquery form实现ajax上传文件的方法,大家参考一下实例代码吧: <span style="font-family: Arial, Helvetica, sans-serif;">function ajaxSubmitForm() {</span> var option = { url : cache.batchImport, type : 'POST', dataType : 'json', headers : {"tok
-
jQuery Ajax 上传文件处理方式介绍(推荐)
AJAX 是一种与服务器交换数据的技术,可以在补充在整个页面的情况下更新网页的一部分. 下面的表格列出了所有的 jQuery AJAX 方法: jQuery Ajax在web应用开发中很常用,它主要包括有ajax,get,post,load,getscript等等这几种常用无刷新操作方法,接下来通过本文给大家介绍jquery ajax 上传文件处理方式. FormData对象 XMLHttpRequest Level 2添加了一个新的接口FormData.利用FormData对象,我们可以通过J
-
PHP使用ajax的post方式下载excel文件简单示例
本文实例讲述了PHP使用ajax的post方式下载excel文件.分享给大家供大家参考,具体如下: 项目需求,前端发起ajax请求,后端生成excel并下载,同时需要在header头中,带上token验证信息,参考了很多文章,最终实现如下: PHP后端使用base64: $filename = 'demo.xlsx'; $objWriter = \PHPExcel_IOFactory::createWriter($objectPHPExcel, 'Excel2007'); ob_start();
-
基于jquery ajax的多文件上传进度条过程解析
这篇文章主要介绍了基于jquery ajax的多文件上传进度条过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 效果图 前端代码,基于jquery <!DOCTYPE html> <html> <head> <title>主页</title> <meta name="viewport" content="width=device-width,initia
-
通过jquery的ajax请求本地的json文件方法
自己学习jquery的ajax的经历,记录一下 ajaxTestDemo.html 在body里面放一个id为test的div <div id="test"></div> 第一步还是要先加载jquery文件 jquery.min.js <script> $(function(){ $.ajax({ //请求方式为get type:"GET", //json文件位置 url:"./data/shuju.json"
随机推荐
- jQuery使用cookie与json简单实现购物车功能
- 基于jQuery实现的菜单切换效果
- 实现只能输入数字的input不用replace方法
- Java遗传算法之冲出迷宫
- 在Spring Boot中如何使用数据缓存
- 详解Docker学习之用commit命令创建镜像
- PHP中JSON的应用技巧
- PHP 开发环境配置(Zend Server安装)
- js实现图片上传预览原理分析
- php远程下载类分享
- java删除指定目录下所有空文件夹的方法
- mysql中模糊查询的四种用法介绍
- Oracle MERGE INTO的用法示例介绍
- 批量 kill mysql 中运行时间长的sql
- 轻松实现jquery手风琴效果
- 使用jquery mobile做幻灯播放效果实现步骤
- javascript 输入文本框时的友好提示
- 如何判断一个数是否为2的幂次方?若是,并判断出来是多少次方?
- C#序列化与反序列化(Serialize,Deserialize)实例详解
- 详解JAVA抓取网页的图片,JAVA利用正则表达式抓取网站图片