Я хочу запросить JSON внутри страницы WordPress - PullRequest
0 голосов
/ 11 июня 2010

Последние несколько часов я пытался настроить http://code.google.com/apis/books/docs/dynamic-links.html в блоге WordPress. API Google отправляет обратно ответ JSON (который должен быть «помещен» в переменную _GBSBookInfo). Однако эта переменная никогда не назначается, поэтому моя функция обратного вызова javascript взрывается, говоря, что переменная не существует Пока что весь мой javascript находится в заголовке WordPress.

Я пробовал это вне WordPress, и он отлично работает.

Это статическая страница:

<script src="http://books.google.com/books?bibkeys=0307346609&jscmd=viewapi&callback=response_handler">

Это обработчик:

function response_handler(data) { 
   var bookInfo = _GBSBookInfo["0307346609"]; // the var that doesn't exist
   document.getElementById("test123").innerHTML = bookInfo.thumbnail_url;
} 

Спасибо за любую помощь, WordPress очень расстраивает, ограничивая так много! Если я делаю что-то глупое, скажите, пожалуйста, я новый программист javascript.

EDIT:

До сих пор я использовал firebug для определения проблемы: переменная _GBSBookInfo никогда не создается и не существует. Я не уверен, как JavaScript работает на этом уровне. Надеюсь, это поможет.

ОШИБКА:

Ошибка: _GBSBookInfo не определен Линия: 79

1 Ответ

1 голос
/ 11 июня 2010

Попробуйте заменить _GSBookInfo на data, вот так:

function response_handler (data) {
    var bookInfo = data["0307346609"];
    document.getElementById("test123").innerHTML = bookInfo.thumbnail_url;
}

На основании вашего поста Google возвращает это:

response_handler({
    "0307346609": {
        "bib_key":"0307346609",
        ....
        "thumbnail_url":"http://bks2.books.google.com/books?somethumbnailstuff"
    }
});

... поэтому приведенный выше код должен работать на вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...