Вопрос по json
Вот начал осваивать jquery. Столкнулся с проблемой:
Неработает код. Надо получить данные из json. Вот они: {"auth":1,"voiced":1,"voice":"1","like":"1","dislike":"0"} А вот код: <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> <script> $.getJSON("http://site.ru/like_result.php?siteid=0&url="+window.location.path,function(data){ $("#l").html("Лайков: "+data.like+", дислайков: "+data.dislike"); }); </script> <div id='l'></div> Где ошибка? |
1. {"auth":"1","voiced":"1","voice":"1","like":"1","d islike":"0"} - все значения и ключи в кавычки поместите (ну это так, на всякий случай)
2. проверьте точно урл: "http://site.ru/like_result.php?siteid=0&url="+window.location.pat h - точно ли он вам возвращает именно тот json. 3. проверьте точно наличие элемента: $("#l") 4. возможно дата приходит все таки просто строкой - тогда преобразуйте ее в json формат: jQuery.parseJSON( data ) |
Вот html код, по-прежнему нерабочий:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> </head> <script type=text/javascript> $(document).ready(function(){ $.getJSON("http://site.ru/like_result.php?siteid=0&url="+window.location.path,function(data){ var json = $.parseJSON(data); $("#l").html("Лайков: "+json.like+", дислайков: "+json.dislike); }); }); </script> <p id='l'></p> </html> |
Причина проста: браузер запрещает брать данные с другого домена. Прочтите эту статью: http://javascript.ru/ajax/cross-domain-scripting
Но там не описан JSONP (только вскользь упомянутый транспорт через script), поищите эту информацию сами. |
Так домен-то один и тот же
|
В консоли пишет невозможно конвертировать var json о объект
|
Вроде разобрался. Можете подсказать материал по JSONP или другим способам кроссдоменного аякса?
|
Часовой пояс GMT +3, время: 22:39. |