2010-07-27 7 views
0

Я пытаюсь сделать запрос http с помощью функции jquery getJSON. Я реализовал его вот так ...Функция getJSON всегда возвращает null

<script type="text/javascript"> 
$(function(){ 
$("#query").keyup(function(event) { 
     keyword = $("#query").val(); 
     $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", showdata); 
    }); 
}); 
function showdata(data, status) { 
    alert(data + ":" + status); 
} 
</script> 

Это всегда возвращает null. Я проверил HTTP-заголовки, они тоже нулевые. Но если я напрямую использую URL-адрес, он отображает JSON в окне браузера.

Что я делаю неправильно?

Некоторые из предложенных я должен использовать JSONP, но в URL, который я фактически использую, есть некоторая конфиденциальная информация, которую я не хочу раскрывать, поэтому я хочу придерживаться getJSON.

С уважением

+0

на самом деле ваши коды несколько похожи на http://api.jquery.com/jquery.getJSON/ пример ... Мне было интересно, если вы делаете что-то еще ... – Reigel

+0

@Reigel - единственная вещь Я делаю разные, используя другой URL. Я попробовал тот, который задан в getJSON, который тоже возвратил null, поэтому я, хотя есть некоторые проблемы. – vikmalhotra

+0

является вашей ссылкой/URL-адресом в том же домене? – Reigel

ответ

1

@Reigel - нет его не на том же домене.

ваша проблема из-за same-origin-policy

+0

Значит ли это, что я должен использовать JSONP? Кроме того, почему фликер api работает здесь - api.jquery.com/jquery.getJSON, а не мой api? – vikmalhotra

+0

Это из-за 'jsoncallback =?', Который есть JSONP ... – Reigel

+0

Не могли бы вы объяснить, почему работает http://www.jsfiddle.net/htcxT/1/? Это тот же самый код от OP – jAndy

0

Как @Reigel предложил проблема была же происхождения-политики, поэтому я решил создать прокси-сервер с помощью кода на основе сервера, который возвращает правильный JSON.

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