Функция jQuery getJSON с предупреждением не работает - PullRequest
1 голос
/ 06 января 2010

Я пытаюсь заставить работать функцию jQuery getJSON. Следующее кажется очень простым, но оно не работает.

$("#edit-item-btn").live('click', function() {
    var name = this.id;
    $.getJSON("InfoRetrieve",
       { theName : name },
       function(data) {
       alert(name);
    });
});

Ответы [ 5 ]

3 голосов
/ 06 января 2010
  1. Убедитесь, что окружающий код работает с вашей DOM, заменив вызов getJSON простым alert
  2. Убедитесь, что путь InfoRetrieve действительно существует.Если вы замените имя файла в строке URL на InfoRetrieve , возвращается ли оно JSON?
  3. function(data) необходимо закрыть с помощью } перед закрытием обработчика щелчков.
  4. { theName : theName } имеет больше смысла для меня как data.Вы уверены, что ввели это правильно?
2 голосов
/ 06 января 2010

Разве вы не должны делать оповещения (данные)?

2 голосов
/ 06 января 2010

Вы используете переменную name в двух местах, но эта переменная никогда не определяется.

1 голос
/ 06 января 2010

Вы пытались использовать Firebug или Chrome Developer Tools, чтобы увидеть, какие запросы делаются?

Существует ли файл с именем InfoRetrieve в текущем пути вашего сайта? Что это возвращает?

0 голосов
/ 13 февраля 2010

Я не уверен, что ваш код правильный. Попробуйте это и посмотрите, что получится:

$("#edit-item-btn").live('click', function() {
    var name = this.id;
    $.getJSON("InfoRetrieve",
       { theName : name },
       function(data) {
           alert(data.name);
    });
});

Это должно работать, если InfoRetrieve отвечает строкой JSON следующим образом:

{"name":"Sally Smith"}

Несколько замечаний:

  1. Вы отправляете запрос в ./InfoRetrieve в том же каталоге, где расположена страница. Если вы используете сервлет, это действительно правильно? Или вы хотите "/ servlet / InfoRequest"?
  2. Вы отправляете данные в качестве ввода в InfoRetrieve с ключом «theName» и значением «this.id». Ваш сервлет знает, как принять этот ввод?
  3. Затем вы получаете ответ от InfoRetrieve, и для «данных» задается объект, представляющий json в ответе. Затем вам нужно получить доступ к свойствам данных, чтобы получить значения в ответе.
...