我有一个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>
这不输出任何东西?我很快就做到了,不知道为什么我什么都没看到?
答案 0 :(得分:2)
跨域AJAX调用需要jsonp
(或编写代理服务器端脚本)。只要远程服务器设置正确(我认为亚马逊会这样),使用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
答案 1 :(得分:1)
由于same-origin policy,您的网络应用程序无法与其他域中的内容进行互动。
您需要通过您的网络服务器代理请求(然后联系亚马逊并返回结果),或使用JSONP。