bluefoxxp: http request und GET-Variable setzen mit JS

Hi,

ich hab mit einem kleinen Script versucht, mittels HTTP-Request die GET-Variable zu setzen. Hier mein Code:

  
<html>  
    <script>  

  
      var xmlDoc = null ;  
      var bit = 0;  
      var url = null;  
  
      function load() {  
        bit=1;  
        if (typeof window.ActiveXObject != 'undefined' ) {  
          xmlDoc = new ActiveXObject("Microsoft.XMLHTTP");  
          xmlDoc.onreadystatechange = process;  
        }  
        else {  
          xmlDoc = new XMLHttpRequest()  
          xmlDoc.onload = process ;  
        }  
	url = "background.html?zahl=bit";  
        xmlDoc.open( "GET", url, true );  
        xmlDoc.send( null );  
      }  
  
      function process() {  
	if(xmlDoc.readyState==4) {  
        	document.getElementById("output").value = bit ;  
	}  
	else  
		return;  
      }  
  
      function empty() {  
        bit=0;  
        document.getElementById("output").value = bit ;  
      }  

  
</script>  
<body>  
      <textarea id="output" cols='70' rows='40'><empty></textarea>  
      <br></br>  
      <button onmousedown="load()" onmouseup="empty()">Taster</button> &nbsp;  
  
    </body>  
  </html>  

Die Datei, in der das ganze drinnen steht, heißt background.html.
Wenn ich jetzt auf den Button klicke, müsste ich doch in der URL in der Browser-Leiste die angehängte GET-Variable plus dem Wert der "bit"-Variable sehen oder? Aber leider funktioniert das nicht; es ändert sich gar nix an der URL...
Woran liegt das?

Danke für die Hilfe!

  1. Hi,

    Wenn ich jetzt auf den Button klicke, müsste ich doch in der URL in der Browser-Leiste die angehängte GET-Variable plus dem Wert der "bit"-Variable sehen oder?

    Nein.
    Du verwendest das XMLHttpRequest-Objekt, und das ist dazu gedacht, Abfragen im Hintergrund zu machen.

    Wenn du eine sichtbare Änderung in der Adresszeile haben und damit ein neues Dokument laden willst - dann verwende bspw. location.href.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Hi,

      Wenn ich jetzt auf den Button klicke, müsste ich doch in der URL in der Browser-Leiste die angehängte GET-Variable plus dem Wert der "bit"-Variable sehen oder?

      Nein.
      Du verwendest das XMLHttpRequest-Objekt, und das ist dazu gedacht, Abfragen im Hintergrund zu machen.

      Wenn du eine sichtbare Änderung in der Adresszeile haben und damit ein neues Dokument laden willst - dann verwende bspw. location.href.

      MfG ChrisB

      Danke für die Antworten!
      Wenn ich aber die Änderung nicht direkt sehe, gibts dann irgendeine JS-Funktion, die mir den aktuellen Zustand von GET anzeigt?

      1. Wenn ich aber die Änderung nicht direkt sehe, gibts dann irgendeine JS-Funktion, die mir den aktuellen Zustand von GET anzeigt?

        Ich verstehe deine Frage nicht, was meinst du mit »der aktuelle Zustand von GET«?

        GET ist eine HTTP-Methode, meinst du vielleicht die URL des aktuellen Dokuments?

        Ich vermute, dass du http://de.selfhtml.org/javascript/objekte/location.htm#search suchst. ChrisB hatte ich ja schon auf das location-Objekt hingewiesen. Damit kannst du die aktuelle URL auslesen aber auch den Browser dazu bringen, eine neue zu öffnen.

        Mathias

        1. Wenn ich aber die Änderung nicht direkt sehe, gibts dann irgendeine JS-Funktion, die mir den aktuellen Zustand von GET anzeigt?

          Ich verstehe deine Frage nicht, was meinst du mit »der aktuelle Zustand von GET«?

          GET ist eine HTTP-Methode, meinst du vielleicht die URL des aktuellen Dokuments?

          Ich vermute, dass du http://de.selfhtml.org/javascript/objekte/location.htm#search suchst. ChrisB hatte ich ja schon auf das location-Objekt hingewiesen. Damit kannst du die aktuelle URL auslesen aber auch den Browser dazu bringen, eine neue zu öffnen.

          Mathias

          Hm. window.location.search hab ich schon versucht, aber da erhalte ich nur eine leere Ausgabe. Das bedeutet wohl, dass der GET-Aufruf in meinem obigen Code nicht funktioniert hat... Seht ihr da einen Fehler?

          1. Hi,

            Hm. window.location.search hab ich schon versucht, aber da erhalte ich nur eine leere Ausgabe. Das bedeutet wohl, dass der GET-Aufruf in meinem obigen Code nicht funktioniert hat... Seht ihr da einen Fehler?

            Dein Fehler ist die Annahme, ein AJAX-Request würde *irgend etwas* an der aktuellen URL ändern. Es ist einer der wesentlichen *Zwecke* von AJAX, dass genau dies nicht passiert. Das Request-Objekt ist vollkommen separat.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
  2. Hi,

    Wenn ich jetzt auf den Button klicke, müsste ich doch in der URL in der Browser-Leiste die angehängte GET-Variable

    Nein, Du möchtest den Request mit einem DOM~ oder Active* Objekt senden, da ändert sich in der Adresszeile nichts.

    Unbedingt beachten: Ein Query-String im URI enthält Parameter, die als Variable zu bezeichnen ist irreführend.

    Btw., die FF-Ext. LiveHTTPHeaders macht diese Parameter sichtbar.

    Hotti