2009-07-08 3 views
5

Я пытаюсь загрузить внешний JavaScript с использованием getScript JQuery (в), как это:jQuery.getScript: переменные данные в обратном вызове неопределенную

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

, но как окно предупреждения показывает, переменные данные в функции обратного вызова функция не определена, в отличие от обещанного в http://docs.jquery.com/Ajax/jQuery.getScript#urlcallback.

Кто-нибудь знает, почему это может быть?

Спасибо.

+0

У меня такая же ошибка, я спросил об этом irc, но никто не знает, что такое оценка. Я жду ответа в списке рассылки. – YHVH

ответ

1

Да, это загрузка скрипта, но, как ни странно, переменная данных не определена. Но я попытался получить доступ к переменной (RecaptchaStr_en) из сценария с удаленного сайта и определен.

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

Вы нашли проблему? У меня то же самое. Появляется состояние гонки где-то – Instine

3

Если посмотреть на источник в getScript (строка 3338 в jQuery-1.3.2.js), вы можете увидеть, что документация здесь не так. Параметр data предназначен для отправки данных в сервера в строке запроса, который, по мнению jQuery, вам не понадобится для загрузки скриптов; он используется, например, для getJSON. getScript только данные жестких кодов в null и автоматически оценивает извлеченный сценарий для вас.

Так что плохая новость заключается в том, что документация неверна. Хорошей новостью является то, что вы, вероятно, просто хотели оценить сценарий в любом случае, так что вам, вероятно, вообще не нужен обратный вызов.

1

Просто загрузите ваши сценарии с относительными путями, т.е. /Script/MyScript.js rhather чем http://mywebsite.com/Script/MyScript.js

Для C пират, нет ничего плохого документации, которая работает, как ожидалось. XMLHttpRequest не разрешает междоменные запросы и кажется, что параметр данных не определен, даже если вы поместите весь путь в один и тот же домен.

0

Когда вы определяете тип данных для сценария, запрос не выполняется с использованием XMLHttpRequest, а скорее тегом, поэтому данные и объекты успеха в обратном вызове недоступны.

+0

Можете ли вы добавить ссылку? @Al. –

Смежные вопросы