2013-10-11 9 views
5

Sto cercando di ottenere weinre lavorare tramite Ajax chiamando questo sul pronto dom:Passare # valori con l'Ajax non funziona

$.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); 
    } 
}); 

Ora, questo è ciò che viene inviato:

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

Quale significa che, per il mio debug, devo usare un ID generato casualmente. Ho provato anche questo: url: 'http://debug.build.phonegap.com/target/target-script-min.js?_=hutber', Basta scattare al buio.

Quindi, sto scrivendo pensando che il #hutber non viene inviato correttamente con la richiesta?

Modifica

Solo un pensiero rapido, utilizzando $ .ajax significa che sto caricando uno script dinamicamente tramite una richiesta HTTP. Come accennato da Quentin non è possibile passare #vars in quanto questi sono lato client. E 'accaduto a me, tuttavia, che avrei potuto passare il valico se ho aggiunto l'elemento nel corpo come se fosse lì a pagina carico:

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); 

Ora, le cose dovrebbero funzionare un po' meglio, non può verificare questa teoria con un telefono cellulare comunque. Ma le dita incrociate.

risposta

7

Sì e No. Hai ragione nel pensare che #hutber non venga inviato con la richiesta, ma hai torto a pensare che questo non sia corretto.

La parte dell'identificatore di frammento di un URL viene gestita esclusivamente lato client, quindi non dovrebbe mai essere inviata al server.

Se si desidera allegare dati a un URL per il server da elaborare, utilizzare una stringa di query (a partire da un carattere ? e non un carattere #). Se si dispone sia di una stringa di query sia di un identificatore di frammento, la stringa di query deve essere prima.

jQuery genera una stringa di query per te se si include una proprietà data per l'oggetto passato a ajax (se si utilizza GET, come si è qui).

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

Sì, questi erano i miei pensieri esatti. Ho provato a passare come dati ma senza fortuna. Ora è il momento di portarlo su con le persone fonegap che credo :) –

+0

Vedere la domanda aggiornata, ha avuto un pensiero che potrebbe aiutare :) –

Problemi correlati