2013-11-22 3 views
-7

Я пытаюсь сделать междоменный вызов AJAX с последним jQuery для API Twitch.TV, и я получаю сообщение об ошибке.Перекрестный домен AJAX Call

Код:

$.ajax({ 
    type: 'GET', 
    dataType: "json", 
    url: "https://api.twitch.tv/kraken/search/games?q=star&type=suggest", 
    success: function (responseData, textStatus, jqXHR) { 
     console.log("in"); 
     var data = JSON.parse(responseData['AuthenticateUserResult']); 
     console.log(data); 
    }, 
    error: function (responseData, textStatus, errorThrown) { 
     alert('POST failed.'); 
    } 
}); 

Ошибка:

XMLHttpRequest cannot load https://api.twitch.tv/kraken/search/games?q=star&type=suggest . No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://codeeplus.net ' is therefore not allowed access.

+1

Я на самом деле видел этот пост и он не работает для меня вообще. – user2812028

+0

http://api.jquery.com/jQuery.getJSON/ и посмотрите http://en.wikipedia.org/wiki/JSONP –

+0

* Что * не работает для вас? Обратный прокси должен работать нормально. twitch.tv также поддерживает JSONP, просто добавьте 'callback = whatever' в строку запроса. –

ответ

1

Вам необходимо JSONP для запросов кросс-браузера. Ссылка, которую вы мне дали, отлично работает с функцией jQuery getJSON.

для потоков: http://jsfiddle.net/82wNq/27/

для игр: http://jsfiddle.net/82wNq/25/

$.getJSON("https://api.twitch.tv/kraken/search/games?q=star&type=suggest&callback=?", function (data) { 
    $.each(data.games, function (index, item) { 
     $("<div>").html(item.name).appendTo("#content"); 
     $("<img>").attr("src", item.box.medium).appendTo("#content"); 
    }); 
}); 
+0

Это сработало! Но как мне сделать это с помощью/search/streams вместо/search/games? Я предполагаю, что вам нужно изменить data.games на что-то еще, я попробовал только данные, и это не сработало. Есть идеи? @thenewseattle – user2812028

Смежные вопросы