在多次尝试读取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 + '"/>');