Вытяните данные из JSON с JQuery
У меня есть json файл, который хранится в статическом URL-адресе, я бы хотел его захватить и вытащить наши объекты данных.
<div id="content"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$.getJSON('https://s3.amazonaws.com/wallyball_production/comedy.json', function(data){
$("#content").html(data);
});
});
</script>
Это ничего не выводит? Я сделал это очень быстро, не уверен, почему я ничего не вижу?
Ответы
Ответ 1
Для вызовов AJAX для междоменного домена требуется jsonp
(или запись прокси-сервера script). Пока удаленный сервер настроен правильно (я думаю, Amazon будет), это довольно легко с jQuery:
$.ajax({
url : 'https://s3.amazonaws.com/wallyball_production/comedy.json',
dataType : 'jsonp',
success : function (data) {
//$('#content').html(data);
for (var i = 0, len = data.length; i < len; i++) {
//`data[i].something` will access the `something` property an index of the JSON returned
}
}
});
Обратите внимание, что вы получите JSON в ответ, поэтому вам нужно будет перебирать его, прежде чем добавлять его в DOM.
Вот документы для jQuery $.ajax()
: http://api.jquery.com/jquery.ajax
Ответ 2
Из-за политики одного и того же происхождения ваше веб-приложение никогда не может взаимодействовать с контентом из другого домена.
Вам нужно либо проксировать запрос через ваш веб-сервер (который затем связывается с amazon и возвращает результат), либо использовать JSONP.