zoukankan      html  css  js  c++  java
  • ajax中获取和发送二进制数据的方法

    来源:三联教程 | 时间:2013-06-08 17:51:48

     用ajax从服务器端获取二进制时, 需要用overrideMimtType设置request头,让浏览器不要修改读取的的数据,方法如下:

    var xhr = new XMLHttpRequest();

    xhr.onreadystatechange = function(){

    if (xhr.readyState=== 4 && xhr.status === 200){

    var imgdata = xhr.response;

    }

    }

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

    xhr.overrideMimeType("text/plain; charset=x-user-defined");

    xhr.send(null);

    另外要用xhr.response来获得二进制数据,而不是responseText。

    如果需要通过ajax的POST发送二进制数据,在发送前需要将二进制数据的高位变为0,通常在XMLHttpRequest中增加一个方法来实现:

    XMLHttpRequest.prototype.sendAsBinary = function(datastr) {

    function byteValue(x) {

    return x.charCodeAt(0) & 0xff;

    }

    var ords = Array.prototype.map.call(datastr, byteValue);

    var ui8a = new Uint8Array(ords);

    this.send(ui8a.buffer);

    }

    var bindata = 二进制数据;

    xhr.open("POST", url);

    xhr.sendAsBinary(bindata);

    原文链接:http://www.webjzt.com/zhishi/jianzhan/1251.html

  • 相关阅读:
    csp-s模拟103
    csp-s模拟102
    csp-s模拟101
    csp-s模拟100
    csp-s模拟99
    csp-s模拟98
    csp-s模拟97
    csp-s模拟96
    csp-s模拟95
    csp-s模拟94
  • 原文地址:https://www.cnblogs.com/mrcrazy/p/3776972.html
Copyright © 2011-2022 走看看