我發誓這是昨晚工作,這就是爲什麼我能夠在凌晨1點睡覺)。今天早上我開始工作,現在它永遠不會到FB.api的回調。 FB.api是一個異步的Facebook JS調用,但不管昨天晚上這個工作是否正常,我不認爲它是一個Facebook服務器(終點)問題。方法回調不被擊中
function BindAlbumAndPhotoData()
{
GetAllAlbums(userID, accessToken, function(aAlbums)
{
alert("we're back and should have data");
if (aAlbums === null || aAlbums === undefined) {
alert("array is empty");
return false;
}
var defaultAlbumID = aAlbums[0].id;
alert(" defaultAlbumID: " + defaultAlbumID);
});
};
function GetAllAlbums(userID, accessToken, callbackFunctionSuccess)
{
var aAlbums = []; // array
var uri = "/" + userID + "/albums?access_token=" + accessToken;
alert("uri: " + uri);
FB.api(uri, function (response)
{
alert("inside FB.api");
// check for a valid response
if (!response || response.error)
{
alert("error occured");
return;
}
for (var i = 0, l = response.data.length; i < l; i++) {
alert("Album #: " + i + "\r\n" +
"response.data[i].id: " + response.data[i].id + "\r\n" +
"response.data[i].name: " + response.data[i].name + "\r\n" +
"response.data[i].count: " + response.data[i].count + "\r\n" +
"response.data[i].link: " + response.data[i].link
);
aAlbums[i] = new Album(
response.data[i].id,
response.data[i].name,
response.data[i].count,
response.data[i].link
);
alert("aAlbums[" + i + "].id : " + aAlbums[i].id);
}
alert("about to pass back the array to the callback function");
callbackFunctionSuccess(aAlbums);
});
}
所以它得到警報的URI,但從來沒有碰到FB.api中的第一個警報callback..meaning它從來沒有碰到警報(「內FB.api」);我不知道爲什麼。
修訂
看起來像被中止我的所有API調用。不知道會放棄它(FB服務器?):
alt text http://elbalazo.net/post/abortedcalls.jpg
更新:#2
好看起來像中止只是說HTTP請求完成。如果我在Firebug中右鍵單擊該中止行並選擇「在新選項卡中打開」,它將顯示HttpResponse數據...但我認爲這是因爲它發送手動請求時,我這樣做就像複製並粘貼此請求url手動進入瀏覽器...
另一方面,如果我右鍵單擊該中止行並選擇「複製響應頭」,我什麼也得不到。另外當我在Chrome中查看時,我看到請求標題但沒有看到任何響應標題。
所以還是不明白,爲什麼它沒有進入回調,然後如果我從FB.api通話
更新:#3
好取回數據,得到這個工作了。我在FB.api的回調中調用了回調方法。所以它正在轟炸。
function BindFacebookAlbumAndPhotoData()
{
GetAllFacebookAlbums(userID, accessToken, function(aAlbums)
{
if (aAlbums === null || aAlbums === undefined) {
alert("array is empty");
return false;
}
// Set the default albumID
var defaultAlbumID = aAlbums[0].id;
};
功能GetAllAlbums(用戶ID,的accessToken,callbackFunctionSuccess) { 變種aAlbums = []; // array var uri =「/」+ userID +「/ albums?access_token =」+ accessToken;
//alert("uri: " + uri);
FB.api(uri, function (response) {
alert("inside FB.api");
// check for a valid response
if (!response || response.error) {
alert("error occured");
return;
}
for (var i = 0, l = response.data.length; i < l; i++) {
alert("Album #: " + i + "\r\n" +
"response.data[i].id: " + response.data[i].id + "\r\n" +
"response.data[i].name: " + response.data[i].name + "\r\n" +
"response.data[i].count: " + response.data[i].count + "\r\n" +
"response.data[i].link: " + response.data[i].link
);
aAlbums[i] = new FacebookAlbum(
response.data[i].id,
response.data[i].name,
response.data[i].count,
response.data[i].link
);
alert("aAlbums[" + i + "].id : " + aAlbums[i].id);
}
});
alert("about to pass back the array to the callback function");
callbackFunctionSuccess(aAlbums);
}
您是否檢查過dom檢查器,看看Facebook是否實際發送迴應的內容? – RobertPitt 2010-07-27 15:03:29
不知道如何使用...我已經安裝了螢火蟲。 – PositiveGuy 2010-07-27 15:05:26
是dom inspector的一個插件嗎? – PositiveGuy 2010-07-27 15:05:44