Вход

Просмотр полной версии : Вопрос по json


spahi4
31.10.2011, 16:59
Вот начал осваивать 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>

Где ошибка?

Black_Prince
31.10.2011, 18:29
1. {"auth":"1","voiced":"1","voice":"1","like":"1","dislike":"0"} - все значения и ключи в кавычки поместите (ну это так, на всякий случай)

2. проверьте точно урл: "http://site.ru/like_result.php?siteid=0&url="+window.location.path - точно ли он вам возвращает именно тот json.

3. проверьте точно наличие элемента: $("#l")

4. возможно дата приходит все таки просто строкой - тогда преобразуйте ее в json формат: jQuery.parseJSON( data )

spahi4
31.10.2011, 19:19
Вот 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>

FINoM
01.11.2011, 04:49
Причина проста: браузер запрещает брать данные с другого домена. Прочтите эту статью: http://javascript.ru/ajax/cross-domain-scripting
Но там не описан JSONP (только вскользь упомянутый транспорт через script), поищите эту информацию сами.

spahi4
01.11.2011, 12:08
Так домен-то один и тот же

spahi4
01.11.2011, 12:15
В консоли пишет невозможно конвертировать var json о объект

spahi4
01.11.2011, 23:05
Вроде разобрался. Можете подсказать материал по JSONP или другим способам кроссдоменного аякса?