zoukankan      html  css  js  c++  java
  • 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 }

    我这里是显示二维码

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

    来自1942年冬季攻势中的中央集团军的037号17吨救援拖车
  • 相关阅读:
    整数划分《递归法》
    hdu 1224 Free DIY Tour
    HTTP Response Status Code HTTP响应代码中文详解
    Webserive学习站点
    页面的回传与回调
    JS中apply和call函数的运用
    SOAP协议详解
    JS在firefox和IE下差异及解决方案
    关于路径的问题
    .NET中IDisposable接口的基本使用 (转)
  • 原文地址:https://www.cnblogs.com/panther1942/p/11085425.html
Copyright © 2011-2022 走看看