javascript处理二进制图片流

今天学习怎么生成二维码,我习惯所有请求都用ajax完成

但是今天发现jquery的ajax不支持二进制,只能搞纯文本

于是百度之后手动实现这一功能

 1 function getBinary(url, args, success) {
 2     var xmlhttp = new XMLHttpRequest();
 3     var data = eval(args);
 4     var i = 0;
 5     for (var key in data) {
 6         if (i++ === 0) {
 7             url += '?' + key + "=" + data[key];
 8         } else {
 9             url += '&' + key + "=" + data[key];
10         }
11     }
12     xmlhttp.open("GET", url, true);
13     xmlhttp.responseType = "blob";
14     xmlhttp.onload = function () {
15         success(this.response);
16     };
17     xmlhttp.send();
18 }

我没有处理不同浏览器的XHR的问题 需要处理的在第一行搞就行

需要三个参数

地一个是请求url,第二个是请求参数,第三个是成功后的处理方法

请求参数用这样的方式

{‘param1':1,'param2':2,'param3':3}

处理方法要接收一个参数 就是响应的数据 也就是下图的data

然后是调用

1 function submit() {
2     getBinary("/request/qrCode", {'data': $('#str').val()},
3         function (data) {
4             var img = $('#qrcode');
5             window.URL.revokeObjectURL(img.src);
6             $('#qrcode').attr('src', window.URL.createObjectURL(data));
7         })
8 }

我这里是显示二维码

第五行的代码不能少 少了的话首次执行该方法没问题 再次执行的话图片不会改变 需要刷新页面

转载于:https://www.cnblogs.com/panther1942/p/11085425.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值