$.getJSON请求的行为方式我不清楚.不确定如何使用callback=格式化请求

$.getJSON request is behaving in a way I am unclear about. Not sure how to format the request with callback=?

本文关键字:请求 何使用 callback 格式化 不确定 方式我 getJSON 不清楚      更新时间:2023-09-26

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

查看您的控制台:

XMLHttpRequest无法加载https://api.twitch.tv/kraken/channels/athenelive/videos?limit=3&broadcasts=true。起源http://fiddle.jshell.net访问控制允许来源不允许。

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

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

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