JavaScript 中的 httprequest 和二进制数据



在多次尝试读取httprequest的响应后仍在挣扎,httprequest是一个二进制数据流,它将代表一个jpg图像。

编辑:整个事情

xmlhttp = false;
        /*@cc_on@*/
        /*@if (@_jscript_version >= 5)
        // JScript gives us Conditional compilation, we can cope with old IE versions.
        // and security blocked creation of the objects.
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (E) {
                xmlhttp = false;
            }
        }
        @end@*/
        if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
            try {
                xmlhttp = new XMLHttpRequest();
            } catch (e) {
                xmlhttp = false;
            }
        }
        if (!xmlhttp && window.createRequest) {
            try {
                xmlhttp = window.createRequest();
            } catch (e) {
                xmlhttp = false;
            }
        }
        xmlhttp.open("GET", theUrl, true);  
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4) {
                var headers = xmlhttp.getAllResponseHeaders(); 
            }
        }
        xmlhttp.send(null);

我使用的是IE8,没有HTML 5(也在FF12中尝试过)所以我总是以类似这样的错误结束

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

xhr.responseType = "arraybuffer";

即使复制到变量中也不起作用

var body = xhr.response; //.responseText , .responseBody

任何想法有什么问题或我可以尝试什么?

我做了这个例子来读取客户端上的二进制JPEG并解析EXIF数据。它使用BinFileReader.js这使得跨浏览器处理二进制数据变得非常容易。这是一个zip文件中的全部内容,包括一个基于节点的Web服务器(使用节点服务器运行.js)我也包括了一个Web-worker示例。

如果您只是用二进制流制作图像,为什么不直接将<img src="blah" />添加到您的 DOM 中?

$('body').append('<img src="' + URL + '"/>');

相关内容

  • 没有找到相关文章

最新更新