首页 > 代码库 > 使用XMLHttpRequest处理异步请求返回的图片等二进制文件

使用XMLHttpRequest处理异步请求返回的图片等二进制文件

封装的Ajax没有接受文件的类型 所以要用传统的 XMLHttpRequest来处理

function ShowPdf() {
            var url = "/ChannelLiquidation/ShowPdf.ashx?PdfName=<%=PdfName %>&pdfFolder=<%=PdfFolder %>";
            var xhr = null;;
            if (window.XMLHttpRequest) {// code for IE7, Firefox, Opera, etc.
                xhr = new XMLHttpRequest();
            }
            else if (window.ActiveXObject) {// code for IE6, IE5
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            if (xhr != null) {
                xhr.onreadystatechange = false;
                xhr.open(‘GET‘, url, true);
                xhr.responseType = "blob";
                xhr.setRequestHeader("client_type", "DESKTOP_WEB");
                xhr.setRequestHeader("desktop_web_access_key", Math.random().toString());
                xhr.onload = function () {
                    if (this.status == 200) {
                        var blob = this.response;
                        var img = document.createElement("img");
                        img.onload = function (e) {
                            window.URL.revokeObjectURL(img.src);
                        };
                        img.src = http://www.mamicode.com/window.URL.createObjectURL(blob);
                        img.style.cssText = "width: 90%; float: left";
                        img.setAttribute("onerror","this.src=http://www.mamicode.com/‘../Assets/img/notBill.jpeg‘");
                        $("#div_imgcontainer").html(img);
                    }
                }
                xhr.send();
            }
        }
        $(function () {ShowPdf();})

使用XMLHttpRequest处理异步请求返回的图片等二进制文件