ingo: jQuery Ajax: query wird abgeschnitten

Hallo,

ich habe eine Problem mit jQuery.
Um ein kleines Widget zu erstellen, will ich den document.referrer von Suchmaschienen auswerten und relevante Informationen anzeigen.
Eigentlich klappt das ganz gut, jedoch nur, wenn der suchbegriff in der query ganz am Anfang steht. Danach wird mir die Query beim senden an das PHP Script abgeschnitten. Ich weiß nicht mehr weiter und hoffe hier auf Tipps.

So sieht es zur Zeit aus:

  
<script type="text/javascript">  
var ref = 'http://www.google.de/search?hl=de&q=suchwort&btnG=Google-Suche&meta=';  
  
$(document).ready(function(){  
        $.ajax({  
 dataType: 'jsonp',  
        jsonp: 'jsonp_callback',  
        url: 'listener.php',  
        data: 'ref=' + ref,  
        success: function (j) {  
             document.getElementById('ergebniss').innerHTML = j.response;  
 },  
 });  
});  
</script>

<div id="ergebniss"></div>

Wenn ich mir die Variable "ref" nochmal ausgeben lasse per document.write(ref); wird mir:
http://www.google.de/search?hl=de&q=suchwort&btnG=Google-Suche&meta=

Wenn ich im PHP Script dann echo $_GET['ref']; ausführe, kommt aber nur:
http://www.google.de/search?hl=de

Da ich jedoch den Wert von "q" benötige, bringt mir das nix.
Mit http://search.live.com/results.aspx?q=suchwort&go=&form=QBLH klappt alles, da der Wert noch übergeben wird.

jsonp benutze ich als dataType, da ich zwischen zwei Servern kommunizieren muss.

Hat jemand nen Hinweis, wo der Fehler liegt?

Vielen Dank,
Ingo

  1. Hi,

    Um ein kleines Widget zu erstellen, will ich den document.referrer von Suchmaschienen auswerten und relevante Informationen anzeigen.
    Eigentlich klappt das ganz gut, jedoch nur, wenn der suchbegriff in der query ganz am Anfang steht. Danach wird mir die Query beim senden an das PHP Script abgeschnitten.

    data: 'ref=' + ref,
    http://www.google.de/search?hl=de&q=suchwort&btnG=Google-Suche&meta=

    Jetzt setze das doch mal zusammen, da kommt
    ref=http://www.google.de/search?hl=de&q=suchwort&btnG=Google-Suche&meta=
    bei heraus.

    Und da Parameter im HTTP-Umfeld durch & voneinander abgetrennt werden, hast du da jetzt wie viele Parameter, mit welchen Namen und welchen Werten?

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Jetzt setze das doch mal zusammen, da kommt
      ref=http://www.google.de/search?hl=de&q=suchwort&btnG=Google-Suche&meta=
      bei heraus.

      Und da Parameter im HTTP-Umfeld durch & voneinander abgetrennt werden, hast du da jetzt wie viele Parameter, mit welchen Namen und welchen Werten?

      äh, also ich würde sagen 3 paremeter, "hl", "q" und "btnG" mit den Werten hinterm "="
      Mein Problem ist jedoch, dass ich an diese nicht rankommen :-(
      ODer überseh ich da noch was.

      »»*seufz* <Gebetsmühle> Wenn Du einen Wert in einen Kontext bringst, musst Du ihn kontextspezifisch kodieren. </Gebetsmühle> Du bringst eine URL in einen URL-Kontext, URL-kodierst sie jedoch nicht.

      mit
      var ref = encodeURI("http://www.google.de/search?hl=de&q=suchwort&btnG=Google-Suche&meta="); kommt leider auch nicht mehr an.

      Danke schon mal für die Hinweise.

      1. Hi,

        mit
        var ref = encodeURI("http://www.google.de/search?hl=de&q=suchwort&btnG=Google-Suche&meta="); kommt leider auch nicht mehr an.

        Und deine Kontrollausgabe dieses Wertes hat was ergeben?

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
        1. Und deine Kontrollausgabe dieses Wertes hat was ergeben?

          Die hat mir das immer noch abgeschnitten.

          Ich habs jetzt mit
          var ref = encodeURIComponent("http://www.google.de/search?hl=de&q=suchwort&btnG=Google-Suche&meta="); ausprobiert und das funktioniert wunderbar. :-)

          Danke für die Hilfe,
          Ingo

          1. Hi,

            Und deine Kontrollausgabe dieses Wertes hat was ergeben?
            Die hat mir das immer noch abgeschnitten.

            Die clientseitige Kontrollausgabe meinte ich.

            Einen Wert so zu kodieren, dass er immer noch der selbe bleibt, kann ja nicht viel weiterhelfen.

            MfG ChrisB

            --
            „This is the author's opinion, not necessarily that of Starbucks.“
  2. Hi,

    data: 'ref=' + ref,
    Wenn ich mir die Variable "ref" nochmal ausgeben lasse per document.write(ref); wird mir:
    http://www.google.de/search?hl=de&q=suchwort&btnG=Google-Suche&meta=
    Wenn ich im PHP Script dann echo $_GET['ref']; ausführe, kommt aber nur:
    http://www.google.de/search?hl=de

    *seufz* <Gebetsmühle> Wenn Du einen Wert in einen Kontext bringst, musst Du ihn kontextspezifisch kodieren. </Gebetsmühle> Du bringst eine URL in einen URL-Kontext, URL-kodierst sie jedoch nicht.

    <div id="ergebniss"></div>

    Schlage diese ID noch mal im Wörterbuch Deines Vertrauens nach.

    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