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
Lepaskan: 2024-11-13 03:58:01
asal
960 orang telah melayarinya

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();      
Salin selepas log masuk

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(){
            
        }
    });
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan