2013-10-11 12 views
5

arbeiten Ich versuche weinre arbeiten über Ajax zu erhalten, indem diese auf dom bereit Aufruf:Passing # Werte mit Ajax nicht

$.ajax({ 
    url: 'http://debug.build.phonegap.com/target/target-script-min.js#hutber', 
    dataType: "script", 
    crossDomain: true, 
    error: function(data){ 
     c(data.status); 
    }, 
    success: function(data){ 
     c(data); 
    } 
}); 

Nun, das ist das, was gesendet wird:

http://debug.build.phonegap.com/target/target-script-min.js?_=1381476442102 

Welche bedeutet, dass ich für eine Fehlersuche eine zufällig generierte ID verwenden muss. Ich habe das auch versucht: url: 'http://debug.build.phonegap.com/target/target-script-min.js?_=hutber', Nur im Dunkeln schießen.

Also, schreibe ich im Denken, dass die #hutber nicht korrekt mit der Anfrage gesendet wird?

bearbeiten

Nur ein kurzer Gedanke, mit $ .ajax bedeutet, dass ich ein Skript dynamisch über eine HTTP-Anfrage am Laden. Wie von Quentin erwähnt, können Sie nicht #vars übergeben, da diese Client-Seite sind. Es fiel mir jedoch, dass ich den Pass passieren könnte, wenn ich das Element in den Körper aufgenommen, als ob es dort auf Last Seite:

var s = document.createElement('script'); 
s.setAttribute("src","http://debug.build.phonegap.com/target/target-script-min.js#hutber"); 
document.getElementsByTagName('body')[0].appendChild(s); 

Nun Dinge sollte ein wenig besser funktionieren, kann nicht testen diese Theorie mit einem Mobiltelefon jedoch. Aber die Daumen drücken.

Antwort

7

Ja und Nein. Sie haben recht, wenn Sie denken, dass #hutber nicht mit der Anfrage gesendet wird, aber Sie irren sich, wenn Sie denken, dass dies falsch ist.

Der Fragment-ID-Teil einer URL wird rein clientseitig behandelt und sollte daher niemals an den Server gesendet werden.

Wenn Sie Daten an eine URL anhängen möchten, die vom Server verarbeitet werden soll, verwenden Sie eine Abfragezeichenfolge (beginnend mit einem ? Zeichen und nicht einem Zeichen). Wenn Sie sowohl eine Abfragezeichenfolge als auch eine Fragmentkennung haben, muss die Abfragezeichenfolge zuerst lauten.

jQuery generiert eine Abfragezeichenfolge für Sie, wenn Sie dem Objekt, das Sie an ajax übergeben, eine data-Eigenschaft hinzufügen (wenn Sie GET verwenden, wie Sie hier sind).

data { "_": "hutber" } 
+0

Ja, das waren meine genauen Gedanken. Ich habe versucht, als Daten zu übergeben, aber ohne Glück. Jetzt ist es Zeit, es mit den phonegap Menschen aufzunehmen, die ich glaube :) –

+0

Siehe aktualisierte Frage, hatte einen Gedanken, der helfen könnte :) –