2017-05-01 5 views
0

Ich habe eine einfache Ajax-Abfrage perfekt in einer anderen Umgebung arbeitet
(vollständige Datei mit dem Namen adv1.php):Ajax mit leeren response

Bemerkung: Dies ist nicht Cross-Domain, wie in vielen Fragen auf dieser Seite beantwortet !

<?PHP 
if($_GET['uin']=='1') { 
    sleep(10); 
    echo 4711; 
    exit; 
} 
?> 
<html><head><title>ajax</title></head><body> 
<script type='text/javascript'> 
ajax=new XMLHttpRequest(); 
ajax.open('GET', 'adv1.php?uin=1', true); 
ajax.send(null); 
ajax.onreadystatechange=showres; 
alert('request sent'); 

function showres() { 
    if(ajax.readyState==4){ 
     alert('ajax says: ' + ajax.responseText + 'status:' + ajax.status); 
    } 
} 
</script> 
</body></html> 

so, wenn ich den Code ausführen, ich eine Wartezeit von 10 Sekunden erwarten (Schlaf ...) und danach die response 4711 was ich stattdessen: „Ajax sagt: Status: 0“ auf der anderen Seite, wenn ich die URL eingeben http://path/to/my/file/adv.php?uin=1 bekomme ich die richtige Antwort.

Ich habe dieses Skript von einem anderen Skript auf meiner Website kopiert und angepasst. das andere Skript funktioniert perfekt ...

das Skript jede Konsole-Fehler werfen tut ...

jede mögliche Hilfe? Danke im Voraus!

Antwort

0

Verschieben ajax.onreadystatechange = showres; vor ajax.send(null);.

Hier sind einige examples.

+0

danke, aber das hat mir nicht geholfen. Ich denke, die Funktion showres soll ausgeführt werden, weil ich die Antwort bekomme alert ('ajax sagt:' ...) aber ich bekomme die Antwort zu früh (Schlaf in meinem PHP wird ignoriert) und mit leeren responsetext und Status 0 statt 200 ... – walterP