0

3 つの jquery json リクエストのうち、そのうちの 1 つでクロスドメイン エラーが発生しています。(または、本当にそれが json と jsonp を示す理由)。

同じAPIへの2つのリクエスト、1つだけがパラメーターを使用しており、それが機能しない理由は初めてです( &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を読み込めません。オリジンhttp://fiddle.jshell.netは Access-Control-Allow-Origin で許可されていません。

引数を使用$.getJSONすると、callback実際には JSONP 要求が送信されます。jQuery は、<script>タグを作成し、一意のグローバル コールバックを使用するだけで実装します。これがないと、通常の AJAX 要求を他の Web サイトに送信しようとしますが、これはブラウザーで許可されていません。

パラメータを追加するcallbackと動作します:

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