Rumah >hujung hadapan web >tutorial js >Mengapa anda tidak boleh menggunakan jQuery.ajax untuk mendapatkan semula imej sebagai gumpalan?

Mengapa anda tidak boleh menggunakan jQuery.ajax untuk mendapatkan semula imej sebagai gumpalan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-13 03:58:01959semak imbas

Why can't you use jQuery.ajax to retrieve images as blobs?

Menggunakan XMLHttpRequest untuk Mendapatkan 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn