2016-04-26 24 views
0

我在查看Twitch.com用戶是否曾經存在過。當我檢查API調用時,它將在瀏覽器中返回一個值,但不在控制檯中。我的API調用不返回任何內容?

$.getJSON("https://api.twitch.tv/kraken/channels/comster404", function(data2){ 
    // console.log(data2.status); 
    console.log(data2); 
}); 

這是它應該得到 { 「錯誤」 的數據: 「無法處理的實體」, 「狀態」:422, 「消息」: 「通道 'comster404' 不適用於肌」 }

+1

大概:相同的起源(https://developer.mozilla.org/ EN-US /文檔/網絡/安全性/同-origin_policy)。他們似乎支持JSONP,因爲如果我添加'?callback = foo',我會得到正確的JSONP響應。查看JSONP信息的['$ .getJSON'](http://api.jquery.com/jquery.getJSON/)文檔。 – 2016-04-26 01:49:27

+0

[這是一個JSONP演示](https://jsfiddle.net/rkyza45u/),它顯示它正在工作。 – 2016-04-26 01:53:56

+0

添加?callback =?到URL會使它成爲JSONP是否正確? – user2872518

回答

1

您已通過success回調,但沒有error回調。由於在獲取該URL時發生錯誤,因此不會調用success回調。

可以分別設置回調successerrordone()fail()

var log = document.getElementById("log"); 
 

 
$.getJSON("https://api.twitch.tv/kraken/channels/comster404") 
 
    .done(function(data) { 
 
    console.log(data); 
 
    log.innertHTML += "success!"; 
 
    }) 
 
    .fail(function(error) { 
 
    console.log(error); 
 
    log.innerHTML += error.responseText; 
 
    });
<script src="https://code.jquery.com/jquery-2.2.3.min.js" integrity="sha256-a23g1Nt4dtEYOj7bR+vTu7+T8VP13humZFBJNIYoEJo=" crossorigin="anonymous"></script> 
 
<div id="log"></div>

+0

很好,所以這會做成JSON而不是JSONP呢? – user2872518

+0

是的,它將被視爲JSON。 – 2016-04-26 02:09:55

+0

@ user2872518:它可以在[支持CORS的瀏覽器](http://caniuse.com/#search=cors)中使用。如果您需要支持舊瀏覽器,則需要使用JSONP。 – 2016-04-26 02:13:08

相關問題