2

そのため、最近、ajaxを介してjqueryを使用してInstagramAPIにリクエストを送信しようとしています。でも少し困っているようです。GETリクエストを介して取得されたJSON配列から利用可能な情報を取得しようとしていますが、配列のごく一部にしかアクセスできないようで、他のすべては未定義または空白として入力されます。これが私が使用しているコードです:

$.ajax({
type: "GET",
dataType: "jsonp",
cache: false,
url: "https://api.instagram.com/v1/tags/olympics/media/recent?client_id={clientid}",
success: function(response) {
  for (var i=0; i<25; i++)  
  {
    $("#photos").html(response.data[i].comments.from.username);
  }

  }
});

{clientid}を使用してそれがどこに行くかを表すだけで、テスト情報はおそらくdata [i] .comments.from.usernameから取得されますが、これは機能せず、空白で描画しています。私はJSFiddleを使用して、どこが間違っているのかを突き止めましたが、成功しませんでした。

このハードルを乗り越える方法について誰かが何かアイデアを持っていますか?これだけを使用した他のAPIのいずれにも問題はありません。役立つかもしれないどんなコードも良いでしょう!

ありがとう!

4

2 に答える 2

5

&callback=?URLに追加してみてください。

url: "https://api.instagram.com/v1/tags/olympics/media/recent?client_id={clientid}&callback=?",
于 2012-08-13T05:54:13.267 に答える
2

コードは正常でしたが、問題は、コンピューターのファイルシステムからページを表示するfile://....../index.htmlと、クロスドメイン要求では機能しないことです。

ajaxはhttpリクエストを行うため、ホストされた環境http://localhost/..../index.htmlからコードを実行する必要があり、これらのリクエストは同じドメイン/サーバーに送信される必要があります。


また、Instagramアプリ(Instagram Webサイト上)で「WEBSITEURL」を設定する必要があります。これは、Instagram APIが要求を認証してclient_id、正しいドメインからのものであることを確認するために使用されます。簡単に言うと、Instagram Webサイトのアプリで指定したのと同じドメインでファイルをホストする必要があります。そうしないと、リクエストが失敗します。

**更新**
実際には、その最後のビットは正しくないようですが、一部のAPIでは、アプリ内で指定された同じドメインでファイルをホストする必要がありますが、Instagramはそうではありません。

ホストされた環境からスクリプトを実行していることを確認してください。

于 2012-08-14T01:16:18.943 に答える