четверг, 7 июля 2011 г.

Использование JSONP на примере forismatic.com

Да, да, это снова forismatic.com, но ничего не поделаешь, нравится мне их сервис, и его API.
В этот раз мой короткий code-snippet посвящен JavaScript и использованию JSONP, который позволяет выполнять кроссдоменные запросы к различным сервисам. Все что изложено ниже, может быть некорректным, а то и вовсе не верным, так как веб-программирование - это совершенно новая для меня область, да и пишу я этот сниппет после 3-4 часов изучения JavaScript.
О самом JSONP неплохо описано в Wiki

Код функции получения цитаты:
var apiUrl = null;
function getQuote() {
 /* If apiUrl is null we will use default Url with English language. */
 if( apiUrl == null ) {
  apiUrl = "http://api.forismatic.com/api/1.0/?method=getQuote&lang=en&format=jsonp&jsonp=parseQuote"; 
 }
 
 /* Dynamic script creating. */
 var script = document.createElement('script');
 script.setAttribute('src', apiUrl);
 
 /* Load the script. */
 document.getElementsByTagName('head')[0].appendChild(script); 
}

В адресе запроса, мы передаем имя callback-функции, которая будет вызвана после получения ответа от сервера, ее код тривиален:
function parseQuote( requestAnswer ) {    
 /* Fill page elements. */
 document.getElementById("quoteText").innerHTML = requestAnswer.quoteText;
 document.getElementById("quoteAuthor").innerHTML = requestAnswer.quoteAuthor;
}

Где, quoteText и quoteAuthor, id места(div, p) для размещения текста цитаты и автора, соответственно.

Комментариев нет:

Отправить комментарий