Ich bin auf der Suche nach einer Möglichkeit, eine externe .js-Datei aufzunehmen und die Antwort-Header von dieser Anfrage erhalten.Abrufen Antwort Header von externen Javascript-Datei
<script src="external/file.js?onload=callback">
function callback(data) {
data.getAllResponseHeaders();
}
</script>
Offensichtlich scheint dies nicht zu funktionieren.
Wie bekomme ich die Antwort-Header von einschließlich der Javascript? Es kann keine zweite Anfrage sein.
In Ihrer Antwort vermeiden Sie bitte die Verwendung von jQuery.
Danke für jede Hilfe.
Arbeitsbeispiel Dank gaetanoM
oXmlHttp.withCredentials = true; is for CORS
oXmlHttp.responseType = 'text'; is for DOM input?
Hier ist der Code, den ich jetzt verwenden;
<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>
genau das, was tut ich es, danke machen wollte! Für CORS habe ich oXmlHttp.withCredentials = true; –
Die Funktion erstellt 3 Skriptblöcke in
. 1 ist leer, die 2 anderen sind das Javascript, das es abruft. Ich verstehe nicht, warum es das tut. –Ich habe Ihr Skript ein wenig geändert, vor allem die onreadystatechange zu onload, weil es die Funktion mehrere Male auslösen würde. –