1

Facebookアプリを開発しています。URLの配列を反復処理し、いいねを含む必要があるdivに追加しているため、URLのいいねを取得しようとしています。これは私のajaxリクエストです:

 $.ajax({
                  type: "GET",
                  cache: false,
                  url: 'https://graph.facebook.com/?id='+videoUrl,
                  dataType : "json",
                  async: false,
                  header: "application/json",
                  success: function(data) {
                      if(data.shares == null) {
                          likeCount = 0;
                      } else {
                          likeCount = data.shares;
                      }
                  }
          });

これは、Chrome、Firefox、Safari で問題なく動作します。どのIEでも動作しません。キャッシングの問題だと思いました。リクエストに cache: false を追加したことに注意してください。JSONP を試してみましたが、いいねを取得しましたが、リクエストの外ではアクセスできません。私もこれを私のphpに追加しようとしました:

    header("Cache-Control: post-check=0, pre-check=0", false);

それでもうまくいきません。私を助けてください!

4

2 に答える 2

4

私は同様の問題を抱えていました。これは私のために働いた:

$.get('https://graph.facebook.com/?id='+videoUrl+'&callback=?', function(data) {
                  if(data.shares == null) {
                      likeCount = 0;
                  } else {
                      likeCount = data.shares;
                  }
              }, 'json');

「&callback=?」URL に を指定すると、jQuery はそれを JSONP として扱います。JSON と JSONP の違いを参照してください。 ここで提供できるよりもはるかに詳細な説明が必要です。

于 2012-10-31T06:07:17.307 に答える
0

これは、CORS に対する IE のサポートが非常に悪く、特定のシナリオでしか機能しないためです。最良のサポートを得るには、JS SDK 経由で Facebook の FB.api を使用する必要があります。

于 2012-10-31T07:06:16.090 に答える