1

10.04.2012 の時点で、Facebook 開発者ドキュメントに「バッチ リクエスト」というタイトルの短い段落があります: Batch calls with 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 を使用してバッチ リクエストを実行できることを意味すると考えたので (JSONP は GET リクエストとしてのみ機能するため、GET リクエストになります)、「バッチ」パラメーター (リクエストを説明するオブジェクトを含む) を追加して試しましたドキュメントのようにバッチの場合)クエリ文字列に。
FB サーバーからの応答は次のとおりです。

Only POST is allowed for batch requests

では、質問:
1. その段落の意味は何ですか?
2. Javascript から非同期バッチ リクエストを実行する方法はありますか?

4

1 に答える 1

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はこれをサポートしていません...

qu.2に答えるには、FB.apiを使用してjavascriptで非同期バッチリクエストを実行できます。IE8がFB.apiを使用してFacebookからの復帰を保留し続けるため、JSONPを試していました。

于 2012-05-10T18:02:34.797 に答える