Ich möchte zwei separate Seiten als meine Kopf- und Fußzeile über Javascript mit Async erhalten.XHR Anfrage erhalten Inhalt Ergebnisse 'undefiniert' ohne JQUERY
OHNE JQuery.
Seite Objekt:
load: function(v, cb) {
tmp.xhr = new XMLHttpRequest();
tmp.xhr.open('GET', v, true); tmp.xhr.send();
tmp.xhr.onreadystatechange = function (e) {
if (tmp.xhr.readyState == 4 && tmp.xhr.status == 200) {
return tmp.xhr.responseText; cb();
}
}
}
TPL Objekt:
appendTo: function(e, v) { document.getElementById(e).innerHTML = v; }
sind Beide Funktionen befindet sich in verschiedenen Objekten
und sie nennen:
tpl.appendTo('header', tpl.load(tmp.views + 'header_generic_2'));
tpl.appendTo('header', tpl.load(tmp.views + 'footer_generic'));
wo tmp.views is a variable for the directory level only
auf meiner Web-Seite habe ich den folgenden Inhalt:
<div id='header'></div>
<div id='footer'></div>
und das Ergebnis I erhalten:
<div id="header">undefined</div>
<div id="footer">undefined</div>
Bild von Ergebnis:
und es gibt keine Konsole Fehler
Aber die Antwort ist 200 und alles funktioniert nach Debug: https://gyazo.com/95dba118fe9eebdb310f617168c8d763 https://gyazo.com/e446b7db7f0a62c280273869eac4d04a
Versucht dies, undefined ist weg, aber keine Daten werden von den (HTML) Seiten angezeigt. – user3052975
Wenn es Ihnen hilft, können Sie das gesamte Projekt hier sehen: http://spleric.com/test – user3052975
Da Sie 'tmp' als globale Variable deklariert haben und' tmp.xhr' für alle Anfragen verwenden, erhalten Sie nur ein Ergebnis zurück . Ich habe meine Antwort bearbeitet und die 'xhr' Anfrage als lokale Variable in der Ladefunktion deklariert. Sie haben auch einen Tippfehler in Ihrer Testseite, 'tmp.xhr.readyState = XMLHttpRequest.DONE ' sollte '===' – rckrd