基于javascript处理二进制图片流过程详解

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

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

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

function getBinary(url, args, success) {

var xmlhttp = new XMLHttpRequest();

var data = eval(args);

var i = 0;

for (var key in data) {

if (i++ === 0) {

url += '?' + key + "=" + data[key];

} else {

url += '&' + key + "=" + data[key];

}

}

xmlhttp.open("GET", url, true);

xmlhttp.responseType = "blob";

xmlhttp.onload = function () {

success(this.response);

};

xmlhttp.send();

}

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

需要三个参数

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

请求参数用这样的方式

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

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

然后是调用

function submit() {

getBinary("/request/qrCode", {'data': $('#str').val()},

function (data) {

var img = $('#qrcode');

window.URL.revokeObjectURL(img.src);

$('#qrcode').attr('src', window.URL.createObjectURL(data));

})

}

我这里是显示二维码

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

以上是 基于javascript处理二进制图片流过程详解 的全部内容, 来源链接: utcz.com/z/344085.html

回到顶部