$ .getJSON请求的行为方式我不清楚。 不知道如何使用callback =格式化请求?

在三个jquery json请求中,其中一个是提供跨域错误,因为我不知道如何包含回调=? (或者为什么那表示json vs jsonp)。

对同一个api的两个请求,只有一个使用参数,这对我来说是新的,为什么它不起作用(我已经尝试添加&callback =?和其他此类解决方案。)

谢谢!

http://jsfiddle.net/hCWwT/10/

var names = ["athenelive", "riotgames", "aphromoo"]; var obj = jQuery.parseJSON('{"name": {"life": "{life}","logo": "{logo}","status": "{status}","preview": "{preview}","url": "{url}"}}'); wtfJSON(); function wtfJSON() { for (index = 0; index < names.length; ++index) { $.getJSON("https://api.twitch.tv/kraken/channels/" + names[index] + "/?callback=?", function (json) { $('body').append("Stufffff: " + obj.name.logo + "
"); $('body').append("Name: " + json.name + "
"); $('body').append("Logo: " + json.logo + "
"); $('body').append("Status(title): " + json.status + "
"); $('body').append("URL: " + json.url + "
"); }); $.getJSON("https://api.twitch.tv/kraken/streams/" + names[index] + "/?callback=?", function (json) { if (json.stream !== null) { $('body').append("Preview: " + json.stream.preview.medium + "
"); } }); $.getJSON("https://api.twitch.tv/kraken/channels/" + names[index] + "/videos?limit=3&broadcasts=true$callback=?", function (json) { $('body').append("Video Name: " + json + "
"); }); } }

看看你的控制台:

XMLHttpRequest无法加载https://api.twitch.tv/kraken/channels/athenelive/videos?limit=3&broadcasts=true 。 Access-Control-Allow-Origin不允许使用来源http://fiddle.jshell.net 。

$.getJSONcallback参数一起使用实际上会发送一个JSONP请求,jQuery只需创建一个标记并使用唯一的全局回调即可实现。 没有它,您尝试向其他网站发送常规AJAX请求,这是您的浏览器所不允许的。

添加一个callback参数,它将工作:

 $.getJSON("https://api.twitch.tv/kraken/channels/" + names[index] + "/videos?limit=3&broadcasts=true&callback=?", function (json) {