Maison > interface Web > js tutoriel > Pourquoi ne pouvez-vous pas utiliser jQuery.ajax pour récupérer des images sous forme de blobs ?

Pourquoi ne pouvez-vous pas utiliser jQuery.ajax pour récupérer des images sous forme de blobs ?

Mary-Kate Olsen
Libérer: 2024-11-13 03:58:01
original
976 Les gens l'ont consulté

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

Utilisation de XMLHttpRequest pour récupérer des images sous forme de blobs

Vous essayez de récupérer une image à l'aide de jQuery.get, de la stocker dans un Blob et de la télécharger sur un autre serveur. Cependant, la non-concordance des types de données entraîne la corruption des images.

Pourquoi ne pouvez-vous pas utiliser jQuery ajax pour récupérer des images sous forme de blobs ?

jQuery.ajax ne prend pas en charge la récupération d'images sous forme de blobs.

Solution

Pour récupérer une image sous forme de blob, vous devez utiliser XMLHttpRequest natif :

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();      
Copier après la connexion

Mise à jour pour jQuery 3

Depuis jQuery 3, il est possible de récupérer des images sous forme de blobs en utilisant 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(){
            
        }
    });
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal