2012-04-10 10 views
1

Ab 10.04.2012, Es gibt einen kurzen Absatz im Facebook developer document for 'batch request' dem Titel: Batch Anrufe mit JSONP, der wie folgt lautet:Facebook Partie mit JSONP ruft

"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." 

Ich dachte, dass Sie auch gemeint tun können eine Batch-Anfrage mit JSONP aus Javascript (was eine GET-Anfrage sein wird, da JSONP nur als GET-Anfrage funktioniert), also habe ich das versucht, indem ich einen 'batch' -Parameter (der Objekte enthält, die Anforderungen für einen Batch wie im Dokument beschreiben) hinzufüge die Abfragezeichenfolge
Antwort vom FB-Server war:

Only POST is allowed for batch requests 

Also, Fragen:
1. Was haben sie in diesem Absatz bedeuten?
2. Gibt es eine Möglichkeit, eine asynchrone Batch-Anfrage von Javascript zu machen?

+0

Können Sie den Code teilen, den Sie mit dieser Antwort beendeten? –

Antwort

0

Ich bekomme das gleiche. Beispielcode ist

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 

die

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

heißt es erfolgreich eine Fehlermeldung zurückschickt. JSONP übersetzt den POST-Typ in einen GET, den Facebook nicht unterstützt ...

Um qu.2 zu beantworten, können Sie FB.api verwenden, um eine asynchrone Stapelanforderung in Javascript durchzuführen. Ich habe JSONP ausprobiert, weil IE8 bei FB.api immer wieder von Facebook kommt.