⭐️ 更多前端技術和知識點,搜索訂閱號
JS 菌
訂閱
目前 jq 用的人仍是挺多的,在一些簡單的促銷 h5 頁面,用 jq 去實現一些簡單的功能仍是比較方便的。本文展現如何用 JQ 去請求一個 blob 對象的 img 圖片並渲染到頁面上 👀前端
默認 jq 的 ajax 對象中的 dataType 沒法設置返回資源爲 blob 那麼就須要手動設置,使其可以最終請求一個 blob 對象web
var xhr = new XMLHttpRequest() xhr.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { handler(this.response) console.log(this.response, typeof this.response) var img = document.getElementById('img') var url = window.URL || window.webkitURL img.src = url.createObjectURL(this.response) } } xhr.open('GET', 'https://httpbin.org/image/png') xhr.responseType = 'blob' xhr.send()
這種方法直接使用了原生的 ajaxajax
另外還能夠使用 xhr 或 xhrFields 配置來修改返回資源的類型this
jq 的 ajax 方法提供了一個 xhr 屬性,能夠自由定義 xhrurl
jQuery.ajax({ url: 'https://httpbin.org/image/png', cache: false, xhr: function () { var xhr = new XMLHttpRequest() xhr.responseType = 'blob' return xhr }, success: function (data) { var img = document.getElementById('img') var url = window.URL || window.webkitURL img.src = url.createObjectURL(data) }, error: function () { } })
另外還能夠修改 jq 的 ajax 方法中 xhrFields 屬性,定義響應類型爲 blobspa
jQuery.ajax({ url: 'https://httpbin.org/image/png', cache: false, xhrFields: { responseType: 'blob' }, success: function (data) { var img = document.getElementById('img') var url = window.URL || window.webkitURL img.src = url.createObjectURL(data) }, error: function () { } })
請關注個人訂閱號,不按期推送有關 JS 的技術文章,只談技術不談八卦 😊3d