2016-04-26 10 views
0

私は、Twitch.comユーザーが存在しているかどうかを確認しています。 API呼び出しをチェックすると、ブラウザには値が返されますが、コンソールには戻りません。 "処理不能エンティティ"、 "ステータス":422、 "メッセージ": APIコールで何も返されませんか?

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

この

はそれが { "エラー" を取得する必要のデータである "チャンネル 'comster404は' 単収縮では使用できません" }

+1

おそらく:[同一生成元ポリシー](https://developer.mozilla.org/ ja-jp/docs/Web/Security/Same-origin_policy)。 '?callback = foo'を追加すると適切なJSONPレスポンスが得られるので、JSONPをサポートしているようです。 JSONP情報の['$ .getJSON'](http://api.jquery.com/jquery.getJSON/)ドキュメントを見てください。 –

+0

[ここにはJSONPのデモ](https://jsfiddle.net/rkyza45u/)があります。 –

+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として扱われます。 –

+0

@ user2872518:[CORSをサポートするブラウザ](http://caniuse.com/#search=cors)で動作します。古いブラウザをサポートする必要がある場合は、JSONPが必要です。 –

関連する問題