0

私はこの機能で髪を引っ張ってきました。これは関数内の関数であるため、何も返さないと思います。コードは次のとおりです。

function getEventImageNormal(data) {
    $.getJSON("https://graph.facebook.com/fql?access_token=" + access_token + "&q=SELECT pic FROM event WHERE eid=" + data, function(data){
        console.log(data.data[0].pic);
        return data.data[0].pic;
    });
}

正しい項目、画像の URL がコンソール ログに設定されていますが、返されていませんか?

なぜ私がhttps://graph.facebook.com/object_id/pictureイベント画像の取得に使用しないのか疑問に思っている人がいれば、それはこの機能が現在機能しておらず、唯一の方法がイベント画像に FQL を使用することだからです。

4

2 に答える 2

2

デフォルトでgetJSON()は、非同期呼び出しを実行します。成功コールバックハンドラー内で関数を呼び出して、応答を処理できます。

$.getJSON("https://graph.facebook.com/fql?access_token=" + access_token + "&q=SELECT pic FROM event WHERE eid=" + data, function(data){
    console.log(data.data[0].pic);
    getResponse(data);
});

function getResponse(data) {
    // handle your data here.
}
于 2012-06-20T01:55:47.820 に答える
0

URL にパラメーターを追加callback=?して、リモート URL と jQuery に呼び出しであることを知らせる必要がありjsonpます。送信されるのが json のみの場合は、クロス ドメイン セキュリティ ポリシーに違反しており、ブラウザはそれを DOM に受け入れません。

これは、ajax の非同期性により、リクエストの成功コールバック内でデータを処理することに加えて行われます。

 var data=/* your value*/
 $.getJSON("https://graph.facebook.com/fql?callback=?&access_token=" + access_token + "&q=SELECT pic FROM event WHERE eid=" + data, function(data){
 /* process data here*/

 })
于 2012-06-20T03:08:32.160 に答える