4 votes

Comment utiliser des blobs et createObjectURL dans Edge et IE

Je suis en utilisant le code suivant pour charger des PDF dans une fenêtre à partir d'une requête AJAX :

$('#divEmbedPdf').empty();

var req = new XMLHttpRequest();
req.open('GET', '/api/read/file?p_key=', true);
req.responseType = 'blob';
req.setRequestHeader('SomeAuthHeader', 'SomeTokenValue');
req.onload = function (event) {
    var fblob = req.response;

    $('', {
        src: window.URL.createObjectURL(fblob),
        frameborder: 0,
        marginheight: 0,
        marginwidth: 0,
        css: {
            position: 'absolute',
            width: '100%',
            height: '100%'
        }
    }).appendTo($('#divEmbedPdf'));
}
req.send();
</code></pre>

<p>Cela fonctionne bien dans Chrome et FF, mais Edge affiche l'erreur suivante :</p>

<pre><code>SEC7134: La ressource 'blob:C88E2211-80B6-4933-B5E1-0E8DE3665368' n'est pas autorisée à charger.
</code></pre>

<p>Y a-t-il un moyen de faire fonctionner cela avec Edge ? Je ne veux pas ouvrir une nouvelle fenêtre, car cela s'exécute dans une fenêtre contextuelle que je veux rendre persistante sans ouvrir et fermer. Comme vous le verrez, j'envoie un en-tête personnalisé dans la requête pour l'authentification, donc je ne peux pas simplement créer un iframe et définir l'attribut src sur un chemin.</p></x-turndown>

2voto

user10089632 Points 2298

Je suppose qu'à présent vous avez votre réponse

Merci d'avoir fourni ces informations sur le problème. Nous avions déjà confirmé le problème et avons publié une solution dans une nouvelle version de Edge. Nous résolvons ce problème comme un doublon d'un rapport de bogue interne existant. Nous attendons avec impatience vos commentaires supplémentaires sur la façon dont nous pouvons améliorer Microsoft Edge.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X