0

在三个 jquery json 请求中,其中一个是给出跨域错误,因为我不知道如何包含 callback=? (或者真的为什么这表示 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 + "<br>");

        $('body').append("Name: " + json.name + "<br>");
        $('body').append("Logo: " + json.logo + "<br>");
        $('body').append("Status(title): " + json.status + "<br>");
        $('body').append("URL: " + json.url + "<br>");

    });

    $.getJSON("https://api.twitch.tv/kraken/streams/" + names[index] + "/?callback=?", function (json) {
        if (json.stream !== null) {

            $('body').append("Preview: " + json.stream.preview.medium + "<br>");

        }
    });

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

        $('body').append("Video Name: " + json + "<br>");

    });
}
}
4

1 回答 1

0

看看你的控制台:

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

使用参数实际上会发送$.getJSON一个callbackJSONP 请求,jQuery 通过创建<script>标签并使用唯一的全局回调来实现该请求。如果没有它,您将尝试向该其他网站发送常规 AJAX 请求,而您的浏览器不允许这样做。

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

$.getJSON("https://api.twitch.tv/kraken/channels/" + names[index] + "/videos?limit=3&broadcasts=true&callback=?", function (json) {
于 2013-07-15T01:52:04.457 回答