今天早上我问了一个关于jQuery代码无效的问题(使用API抓取json文件)然后一些伟大的人告诉我必须让jsonp中的json文件使用回调,我没有。
我与提供API的网站的开发人员进行了沟通,他解决了这个问题以便它支持jsonp,但代码仍无法正常工作!!
这是页面的代码(您可以看到它查看此页面的来源http://rawaji.com/test.html)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
$.getJSON("http://api.qaym.com/0.1/countries/key=u2gTerCTZDudTCMhQBQ9&jsoncallback=?",
function(data){
$.each(data, function(i,item){
$("#results").append("<span class='result' >" + item.name + "</span></br>");
if ( i == 3 ) return false;
});
});
});
</script>
</head>
<body>
<div id="results">
</div>
</body>
</html>
只是一点注意,FireBug告诉我代码中没有错误,甚至控制台都告诉我文件导入正确(参见图像http://twitpic.com/5yycg5)
什么是失踪!! :(
UPDAATE :
我使用了另一个控制器,它向我显示了这条消息!
键= u2gTerCTZDudTCMhQBQ9&安培; jsoncallback = jQuery16206894429267849773_1312140242381:-1 资源解释为脚本但使用MIME类型传输 应用/ JSON。
我对此一无所知,但我会搜索它。如果有人有想法,请告诉:)
答案 0 :(得分:1)
这有效:
$(function(){
$.ajax({
url: 'http://api.qaym.com/0.1/countries/key=u2gTerCTZDudTCMhQBQ9',
dataType: 'jsonp',
crossDomain:true,
success:function(data){
$.each(data, function(i,item){
$("#results").append("<span class='result' >" + item.name + "</span></br>");
if ( i == 3 ) return false;
});
},
error:function(jqxhr,err,status){
alert(status);
}
});
});
401错误返回需要身份验证 - API密钥无效。