2014-11-18 8 views

risposta

4

Non è possibile modificare richiesta HTTP del browser per le risorse caricate dal tag <img>. Qualunque cosa tu stia cercando di fare, dovrai trovare un approccio alternativo.

Ad esempio, è possibile inoltrare la richiesta tramite il proprio server e modificare le intestazioni. Oppure puoi parametrizzare l'URL della risorsa con una stringa di query.

Come Alex fa notare, si può anche essere in grado di utilizzare un oggetto XmlHTTPRequest per caricare i dati di immagine e utilizzare la funzione setRequestHeader, anche se ho il sospetto che si sono limitati in ciò che le intestazioni è possibile impostare (dubito che si possa falsificare il referrer o user agent, ad esempio, sebbene non l'abbia ancora provato).

+0

O qualcosa di orribile con immagini Ajax e datastring –

12

Sono in ritardo qui, ma è possibile farlo con XMLHttpRequest e un blob.

var xhr = new XMLHttpRequest(); 
xhr.responseType = 'blob'; //so you can access the response like a normal URL 
xhr.onreadystatechange = function() { 
    if (xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) { 
     var img = document.createElement('img'); 
     img.src = URL.createObjectURL(xhr.response); //create <img> with src set to the blob 
     document.body.appendChild(img); 
    } 
}; 
xhr.open('GET', 'http://images.example.com/my_secure_image.png', true); 
xhr.setRequestHeader('SecretPassword', 'password123'); 
xhr.send(); 

Se lo si desidera, è possibile verificare che il tipo MIME del blob sia un'immagine.

+0

Grazie! Non è mai troppo tardi :) – andrey

+0

@ robbie0630 inchiodato – Gandhi

Problemi correlati