2010-01-20 2 views
0

Я запрашиваю json-канал, используя стандартный запрос jQuery getJson. URL-адрес json не размещен в моем домене.Невозможно прочитать данные из запроса JQuery getJSON

$.getJSON('myfeed.json?jsoncallback=?', 

function(data){ 
console.log(data); 
}) 

Однако, используя Firebug, я не вижу никаких данных, зарегистрированных на консоли. Но я вижу, что данные json были загружены, как доступно, когда я смотрю под панелью Net в Firebug.

Кто-нибудь знает, почему это так?

Пример JSON

[{ 
    "person": { 
     "name": "Bob", 
    } 
}, 
{ 
    "person": { 
     "name": "Dave", 
    } 
}, 
{ 
    "person": { 
     "name": "Jim", 
    } 
} 
}] 

ответ

1

Убедитесь, что:

  1. Консоль на вообще. Введите javascript:console.log('test') в адресную строку, чтобы узнать, что-нибудь появилось - иногда вам нужно обновить страницу, чтобы запустить консоль.
  2. Канал на другом домене, по сути, построен для JSON-P, который требуется при обращении к каналам в других доменах. На какой корм вы пытаетесь получить доступ?
+0

Как я могу определить, может ли сервер обрабатывать JSON-P? – mindwire22

+0

Он будет работать только в том случае, если другой канал создан специально в формате JSON-P. Если это традиционный JSON, это не так. Вы работаете с фидом, который должен быть общедоступным? – Matchu

+0

Я получаю 200 обратно с сервера, и когда я проверяю запрошенный url в firebug, я вижу вкладку JSON со всеми объектами данных. Так что, хотя я вижу это, я вижу, не могу получить доступ к ojbects в jQuery, потому что его, возможно, jsonp? Это так? – mindwire22

0

Я думаю, что метод getJSON не анализирует контент, если вы не являетесь заголовком типа content-text/json. Вы можете изменить заголовок на стороне сервера или, возможно, сделать что-то вроде этого

$.get("http://MYURL", function(data){ 
    var jsondata = eval("("+data+")") 
} 
0

Убедитесь, что данные JSON хорошо сформированы, а также о том, что сервер возвращает соответствующий тип содержимого. Поместите точку останова на console.log. Скорее всего, это не выполняется, поскольку по какой-то причине обратный вызов не запускается.

+0

Это хорошо сформированный и возвращаемый тип контента - application/json; кодировка = UTF-8 – mindwire22

Смежные вопросы