jsonp与jquery

aku*_*001 89 ajax jquery jsonp

你能给出一个用jquery读取jsonp请求的简单例子吗?我无法让它发挥作用.

Tom*_*vic 144

这是工作示例:

<html><head><title>Twitter 2.0</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head><body>
<div id='tweet-list'></div>
<script type="text/javascript">
$(document).ready(function() {
    var url =  "http://api.twitter.com/1/statuses/user_timeline/codinghorror.json";
    $.getJSON(url + "?callback=?", null, function(tweets) {
        for(i in tweets) {
            tweet = tweets[i];
            $("#tweet-list").append(tweet.text + "<hr />");
        }
    });
});
</script>
</body></html>
Run Code Online (Sandbox Code Playgroud)

请注意所?callback=?请求的URL的末尾.这表明getJSON我们想要使用JSONP的功能.删除它,将使用vanilla JSON请求.由于相同的原始政策,这将失败.

您可以在JQuery站点上找到更多信息和示例:http://api.jquery.com/jQuery.getJSON/

  • 我正在尝试使用那些jsonp参数的$ .ajax,并且无法使其工作.无论如何,这很好用,谢谢. (2认同)
  • `?callback =?`实际上是作为URL的一部分发送的,还是只是jQuery看到的一种标志,并且在获取URL之前剥离了? (2认同)
  • 我发现这是一个很好的参考作为起点.回答上述问题:是的,回调确实作为参数发送,应作为包含在JSON响应中的函数发回.请参阅http://stackoverflow.com/questions/7936610/json-uncaught-syntaxerror-unexpected-token.要发送其他参数,它们将在getJSON()的第二个参数中发送,如上所述.用{p:1,s:50}替换null (2认同)