Mike: xmlHttpRequest nicht auf gleiche Seite verweisen?

Beitrag lesen

Hallo,

Sobald das Skript einen Parameter q übergeben bekommt, gibt es "egal..." aus und stirbt (man beachte das hier).

schon klar, für Testzwecke sollte es aber OK sein.

Sicher, dass du das Skript korrekt abgespeichert hast, und der Server auch dieses Skript ausführt?

100% sicher.

Wie gesagt: Ich meine, dass die URL, die du für den AJAX-Request benutzt auf ein (veraltetes) Skript zeigt, in dem noch die mittlerweile auskommentierte Zeile aktiv ist. Du benutzt IMHO entweder eine falsche URL oder das Skript ist nicht in der neuesten Version im korrekten Verzeichnis.

Nein so wird's nicht sein, denn es funktioniert ja ansonsten. Nochmal das komplette Script zum testen.

Seite: selftest.php

  
  
<?php  
if($_GET['q']){echo 'intern';die();}  
?><html>  
<head>  
<title>selftest</title>  
<meta http-equiv="content-type" content="text/html; charset=utf-8">  
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">  
<meta http-equiv="expires" content="0">  
  
  
<script type="text/javascript">  
  
function starteAjax(url) {  
  
  
var req = new XMLHttpRequest();  
  
req.open( "GET", url, true );  
req.setRequestHeader("Pragma", "no-cache");  
req.setRequestHeader("Cache-Control", "no-cache, no-store, must-revalidate");  
req.onreadystatechange = meineCallbackFkt;  
req.send( null );  
  
}  
  
function meineCallbackFkt() {  
  
if( 4 == this.readyState )  
{  
  if( 200 != this.status ) {alert( "Fehler " + this.status + ": " + this.statusText );  
  }else  
      {  
      // ergebnis verarbeiten  
      // alert( req.responseText );  
      document.getElementById('output').innerHTML += '<h3>'+this.responseText+'</h3>';  
  
      }  
  
  
  }  
}  
</script>  
  
</head>  
<body>  
  
<h2>Test</h2>  
  
  
<button onclick="starteAjax('selftest.php?q=x');starteAjax('test.php?q=x');">Starte Ajax mit dieser Datei</button>  
<button onclick="starteAjax('out.php?q=x');starteAjax('out.php?q=x');">Starte Ajax mit externer Datei</button>  
<p id="output"></p>  
</body>  
</html>  
  

Die externe Seite: out.php

  
<?php  
if($_GET['q']){echo 'extern';die();}  
?><  

Wenn ich den button intern aufrufe bekomme ich als Ausgabe: "intern" und "x"

Wenn ich den button extern aufrufe bekomme ich die richtige Ausgabe: "extern" und "extern"

Habe schon an Cachepropleme gedacht und daher noch die headerangaben hinzugefügt, browsercache gelöscht, alles mögliche...

Sehr seltsam das Ganze...