Heim > Web-Frontend > js-Tutorial > Wie rufe ich Bilder als Blobs mit jQuery und JavaScript ab?

Wie rufe ich Bilder als Blobs mit jQuery und JavaScript ab?

DDD
Freigeben: 2024-11-10 21:17:02
Original
842 Leute haben es durchsucht

How to Retrieve Images as Blobs Using jQuery and JavaScript?

Bilder als Blobs mit jQuery abrufen

In einer früheren Frage haben Sie versucht, Bilddaten in einer POST-Anfrage zu übermitteln. Ihr aktueller Ansatz besteht darin, jQuery.ajax zum Abrufen des Bildes zu verwenden, aber Sie stoßen auf beschädigte Bilder aufgrund von Datentypkonflikten.

Begrenzte jQuery-Datentypen

jQuery.ajax unterstützt mehrere Datentypen, schließt Bilder jedoch nicht explizit ein. Daher ist der Zugriff auf ein Bild als Blob allein mit jQuery nicht möglich.

Native XMLHttpRequest-Lösung

Um dieses Problem zu beheben, können Sie natives XMLHttpRequest verwenden. Hier ist ein Beispiel:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        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();
Nach dem Login kopieren

Dieses Skript erstellt ein XMLHttpRequest-Objekt, konfiguriert es für den Empfang einer Blob-Antwort und verwendet die Blob-URL-Eigenschaft, um das Bild in einem HTML-Element anzuzeigen.

jQuery 3-Lösung

In jQuery 3 ist ein neuer Ansatz verfügbar:

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(){
            
        }
    });
Nach dem Login kopieren

In diesem Beispiel wird die xhr-Funktion verwendet, um das XMLHttpRequest-Objekt zu konfigurieren, und Der Antworttyp ist explizit auf „blob“ festgelegt. Dadurch kann jQuery das Bild als Blob abrufen und im Bildelement anzeigen.

Das obige ist der detaillierte Inhalt vonWie rufe ich Bilder als Blobs mit jQuery und JavaScript ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage