我正在尝试修改flickr示例:http://api.jquery.com/jquery.getjson/以改为使用Sqoot API。我正在使用这个例子来了解jquery。有人可以告诉我为什么它适用于flickr而不是sqoot?
我将我的api密钥更改为MYKEY,但他们只需提供一封电子邮件并输入密码即可立即给你。
感谢。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>SQOOT</title>
<style>
img {
height: 100px;
float: left;
}
</style>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<div id="images"></div>
<div id="titles"></div>
<div id="images2"></div>
<script>
(function() {
var SqootAPI = "http://api.sqoot.com/v2/deals?api_key=MYKEY&callback=?";
$.getJSON( SqootAPI, {
location: "miami"
})
.done(function( data ) {
$.each( data.deals, function( i, item ) {
$( "<img>" ).attr( "src", item.deal.image_url ).appendTo( "#images" );
if ( i === 3 ) {
return false;
}
});
});
})();
</script>
</body>
</html>
答案 0 :(得分:1)
实际上,它们会返回JSON字符串而不是JSONP返回值。
它应该是这样的:
yourCallbackFunction({Object})
但他们只是返回JSON数据:
{ result: [ ] }
这就是您在控制台中收到消息的原因:
SyntaxError: missing ; before statement
如果您不使用回调函数,则会得到相同的原始策略。
您应该联系支持人员告诉他们他们的API存在问题。
编辑:
http://api.sqoot.com/v2/deals?api_key=YourKey&callback=pickles
http://docs.sqoot.com/v2/overview.html
在那里,您还可以看到它没有返回他们在文档(pickles({ "deals": [] })
)中写入的期望值,这些值将是有效的jsonp。