這篇文章主要介紹了jQuery的ajax下載blob檔案的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
乍一聽有點蒙,之前用ng和react時也寫過類似的功能,但很順利(所以忘了具體細節)。 jquery為啥會不行呢?看了一下具體場景,發現原來jq的ajax回呼已經把response的資料傻瓜式的以字串的方式解析了。
查了一下gg,發現國內的解決方案就是在該場景下不實用jq,而是自己手動建立XMLHttpRequest。雖然這個方法很可靠,但之前封裝的jq的ajax就不能使用了。
查了查jq的文檔,本來打算自己根據jq提供的jQuery.ajaxSetup()接口來拓展資料型,但怎麼都搞不定。後來,在github上找到了一個大牛封裝好的jq插件。
然後我們就可以這麼寫了:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>blob demo</title> </head> <body> <img id="img" src="" /> <script src="//cdn.bootcss.com/jquery/2.2.1/jquery.js" charset="utf-8"></script> <script src="jquery-ajax-blob-arraybuffer.js"></script> <script type="text/javascript"> $.ajax({ url: "./face.jpg", type: "get", dataType: "blob", //扩展出了blob类型 }).done(function(data, status, jqXHR){ var reader = new window.FileReader(); reader.readAsDataURL(data); reader.onloadend = function() { document.getElementById("img").src=reader.result; } }).fail(function(jqXHR, textStatus) { console.warn(textStatus); }); </script> </body> </html>
#不過,從該外掛程式的原始碼來看,它也是手動建立了一個XMLHttpRequest物件來發送ajax,不過相容性可能會成為問題。想深究的可以看這裡。
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:
#
以上是jQuery的ajax下載blob檔案的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!