Rumah >hujung hadapan web >tutorial js >Mengapa anda tidak boleh menggunakan jQuery.ajax untuk mendapatkan semula imej sebagai gumpalan?
Anda cuba mendapatkan semula imej menggunakan jQuery.get, simpan dalam Blob dan muat naik ke pelayan lain. Walau bagaimanapun, ketidakpadanan dalam jenis data menyebabkan imej menjadi rosak.
Mengapa anda tidak boleh menggunakan jQuery ajax untuk mendapatkan semula imej sebagai gumpalan?
jQuery.ajax tidak menyokong mendapatkan semula imej sebagai gumpalan.
Penyelesaian
Untuk mendapatkan semula imej sebagai gumpalan, anda perlu menggunakan XMLHttpRequest asli:
var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if (this.readyState == 4 && this.status == 200){ //this.response is what you're looking for 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', 'http://jsfiddle.net/img/logo.png'); xhr.responseType = 'blob'; xhr.send();
Kemas kini untuk jQuery 3
Setakat jQuery 3, ia adalah mungkin untuk mendapatkan semula imej sebagai gumpalan menggunakan jQuery.ajax:
jQuery.ajax({ url:'https://images.unsplash.com/photo-1465101108990-e5eac17cf76d?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&ixid=eyJhcHBfaWQiOjE0NTg5fQ%3D%3D&s=471ae675a6140db97fea32b55781479e', cache:false, xhr:function(){// Seems like the only way to get access to the xhr object 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(){ } });
Atas ialah kandungan terperinci Mengapa anda tidak boleh menggunakan jQuery.ajax untuk mendapatkan semula imej sebagai gumpalan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!