首頁 >web前端 >js教程 >jQuery的ajax下載blob檔案的方法

jQuery的ajax下載blob檔案的方法

不言
不言原創
2018-07-02 17:08:594987瀏覽

這篇文章主要介紹了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中文網!

相關推薦:

原生JS寫入Ajax的請求函數功能

關於ajaxFileUpload 非同步上傳檔案的使用介紹

#

以上是jQuery的ajax下載blob檔案的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn