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

Posted 南极烧烤铺—

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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 = window.URL.createObjectURL(blob);
                        img.style.cssText = "width: 90%; float: left";
                        img.setAttribute("onerror","this.src=‘../Assets/img/notBill.jpeg‘");
                        $("#div_imgcontainer").html(img);
                    }
                }
                xhr.send();
            }
        }
        $(function () {ShowPdf();})

以上是关于使用XMLHttpRequest处理异步请求返回的图片等二进制文件的主要内容,如果未能解决你的问题,请参考以下文章

XMLHttpRequest对象

PHP. 02®. Ajax异步处理常见的响应状态XMLHttpRequest对象及APIajax的get/post方法

Ajax中与服务器的通信发送请求与处理响应

js fetch处理异步请求

JavaWeb_Ajax

教你怎么用ajax来进行交互(入门必看)!!!