2012-04-10 30 views
1

隨着10.04.2012來電, 有一個在Facebook developer document for 'batch request'短款題爲:以JSONP批調用,其內容爲:Facebook的批次JSONP

"The Batch API supports JSONP, just like the rest of the Graph API - 
the JSONP callback function is specified using the 'callback' query string 
or form post parameter." 

我想這意味着你也可以做一個批量請求使用Javascript中的JSONP(這將是一個GET請求,因爲JSONP只能作爲一個GET請求),所以我試圖通過向batch添加一個'batch'參數(包含描述批處理請求的對象)查詢字符串。從FB服務器
迴應是:

Only POST is allowed for batch requests 

所以,問題:
1.什麼他們的意思在那款?
2.有沒有辦法從JavaScript做異步批量請求?

+0

您可以分享您使用的代碼,並以該響應結束嗎? – 2012-04-10 08:22:26

回答

0

我也一樣。示例代碼是

jQuery.support.cors = true;  
var AjaxRequest = jQuery.ajax({ 
    url: "http://graph.facebook.com/", 
    type: "POST", 
    contentType: "application/x-www-form-urlencoded", 
    data: { "access_token": AccessToken, "batch": BatchRequest }, 
    dataType: "jsonp", 
    error: function(jqXHR, textStatus, errorThrown) { 
    ... show error stuff 
    }, 
    success: function(Return, textStatus, jqXHR) { 
    showLog("Return " + JSON.stringify(Return)); 
    showLog("textStatus " + textStatus); 
    showLog("jqXHR " + JSON.stringify(jqXHR)); 
    if (Return.error) { 
     ... go away 
     } 
    else { 
     ... use the data 
     } 
    } 
    }); // eo ajax request 

其給出

Return {"error":3,"error_description":"Only POST is allowed for batch requests"} 
textStatus success 
jqXHR {"readyState":4,"status":200,"statusText":"success"} 

即它成功地發送回錯誤消息。 JSONP將POST類型轉換爲GET,Facebook不支持...

要回答第2題,您可以使用FB.api在javascript中執行異步批量請求。我嘗試了JSONP,因爲IE8一直掛在FB.api的Facebook上。