Je suis à la recherche d'un moyen d'inclure un fichier .js externe et de recevoir les en-têtes de réponse de cette requête.Récupérer les en-têtes de réponse à partir de l'inclusion d'un fichier javascript externe
<script src="external/file.js?onload=callback">
function callback(data) {
data.getAllResponseHeaders();
}
</script>
De toute évidence, cela ne semble pas fonctionner.
Comment puis-je obtenir l'en-tête de réponse en incluant le javascript? Il ne peut pas s'agir d'une deuxième requête.
Dans votre réponse, évitez d'utiliser jQuery.
Merci pour toute aide.
EXEMPLE DE TRAVAIL Merci à gaetanoM
oXmlHttp.withCredentials = true; is for CORS
oXmlHttp.responseType = 'text'; is for DOM input?
Voici le code que j'utilise maintenant;
<script>
function loadScript(url) {
var oXmlHttp = new XMLHttpRequest();
oXmlHttp.withCredentials = true;
oXmlHttp.responseType = 'text';
oXmlHttp.open('GET', url, true);
oXmlHttp.onload = function() {
if(oXmlHttp.status >= 200 || oXmlHttp.status == XMLHttpRequest.DONE) {
var x = oXmlHttp.getAllResponseHeaders();
console.log(x);
if(oXmlHttp.responseText !== null) {
var oHead = document.getElementsByTagName('HEAD').item(0);
var oScript = document.createElement("script");
oScript.language = "javascript";
oScript.type = "text/javascript";
oScript.defer = true;
oScript.text = oXmlHttp.responseText;
oHead.appendChild(oScript);
}
}
}
oXmlHttp.send();
}
loadScript("http://url/to/file.js");
</script>
fait exactement ce que je voulais faire, je vous remercie! Pour CORS, j'ai ajouté oXmlHttp.withCredentials = true; –
La fonction crée 3 blocs de script dans
. 1 est vide, les 2 autres sont le javascript qu'il récupère. Je ne comprends pas pourquoi ça fait ça. –J'ai légèrement modifié votre script, notamment le paramètre onreadystatechange sur onload, car il lance la fonction plusieurs fois. –