2009-07-08 14 views
5

Sto cercando di caricare un JavaScript esterno utilizzando jQuery getScript(), in questo modo:jQuery.getScript: dati variabili in callback definito

$.getScript("http://api.recaptcha.net/js/recaptcha_ajax.js", function(data) { 
    window.alert(data); 
}); 

ma, come gli spettacoli di finestra di avviso, la variabile di dati nel callback la funzione non è definita, diversamente da quanto promesso in http://docs.jquery.com/Ajax/jQuery.getScript#urlcallback.

Qualcuno sa perché questo potrebbe essere?

Grazie.

+0

Sto ricevendo lo stesso errore, l'ho chiesto a irc ma nessuno sembra sapere quale sia il punteggio. Sto aspettando una risposta sulla mailing list. – YHVH

risposta

1

Sì, sta caricando lo script ma stranamente la variabile di dati non è definita. Ma ho provato ad accedere alla variabile (RecaptchaStr_en) dallo script dal sito remoto ed è stato definito.

$.getScript("http://api.recaptcha.net/js/recaptcha_ajax.js", function(data) { 
     window.alert(data); 
     alert($(RecaptchaStr_en)); 
    }); 
+0

hai trovato il problema? Sto avendo lo stesso. Sembra essere una condizione di competizione da qualche parte – Instine

3

Se si guarda alla fonte a getScript (linea 3338 in jQuery-1.3.2.js), si può vedere che la documentazione è sbagliato qui. Il parametro data è per l'invio di dati a il server nella stringa di query, che jQuery presuppone che non sia necessario per il caricamento degli script; è usato, per esempio, getJSON. getScript esegue solo il hardcoding dei dati su null e valuta automaticamente lo script recuperato.

Quindi la cattiva notizia è che la documentazione è sbagliata. La buona notizia è che probabilmente hai solo voluto valutare lo script in ogni caso, quindi probabilmente non hai nemmeno bisogno del callback.

1

Basta caricare i propri script con percorsi relativi cioè /Script/MyScript.js rhather di http://mywebsite.com/Script/MyScript.js

Per C pirata, non c'è nulla di male sulla documentazione, che funziona come previsto. XMLHttpRequest non consente richieste tra domini e sembra che il parametro data non sia definito anche se si inserisce l'intero percorso nello stesso dominio.

0

Quando si definisce dataType come script, la richiesta non viene eseguita utilizzando XMLHttpRequest ma piuttosto il tag, quindi i dati e gli oggetti di successo nella richiamata non sono disponibili.

+0

Puoi aggiungere un riferimento? @Al. –

Problemi correlati