ちょっとしたInstagramアプリを書いているだけです。実際、JSでこのURLから応答を取得しようとすると:
https://api.instagram.com/v1/tags/search?q=money&client_id=f40dfb17ddd144598d562a6f58179006
しかし、何らかの理由で答えが得られず、エラーはまったくありません。ブラウザで URL を呼び出すと、JSON 形式の回答が得られました。
ここで私のフィドル
ちょっとしたInstagramアプリを書いているだけです。実際、JSでこのURLから応答を取得しようとすると:
https://api.instagram.com/v1/tags/search?q=money&client_id=f40dfb17ddd144598d562a6f58179006
しかし、何らかの理由で答えが得られず、エラーはまったくありません。ブラウザで URL を呼び出すと、JSON 形式の回答が得られました。
ここで私のフィドル
クロスドメイン リクエストを行う予定なので&callback=?
、URL の末尾に追加して、API の JSONP バリアントを試す必要があります。
https://api.instagram.com/v1/tags/search?q=money&client_id=f40dfb17ddd144598d562a6f58179006&callback=?
現在のドメイン (ajax 呼び出しを行う場所) から別のドメインにアクセスすることはできません。クロスオリジンエラーが発生します Ajax呼び出しは同じドメインでのみ機能します!
これを回避するには、サーバー内のページを呼び出して、このページが Instagram サーバーへのリモート呼び出しを行い、このページに ajax 呼び出しを行うことです: php の例 - サーバー内 page.php:
$url = 'https://api.instagram.com/v1/tags/search?q=money&client_id=f40dfb17ddd144598d562a6f58179006';
$content = file_get_contents($url);
echo($content); //no need to json_encode cause the response returning a json already!
クライアント側のコードでは、page.php を呼び出すだけです (これはサーバーにあるため、同じドメインです)。
$.getJSON("page.php",function(json){
alert(json.data);
});