0

ここで 1 日以上頭を悩ませています。リクエストを送信して、別のサイトから応答を得ようとしています。私はjsonpでそれをやっています(明らかな理由から)。しかし、応答は JavaScript 関数定義ではないため、失敗し続けます。

この惑星の誰かが私が正しい方法で応答を得るのを手伝ってくれませんか?

私が書いたコードをもう一度添付しました。応答がjsonにないため、機能していません。(自分で実行してみてください)。

助言がありますか?

<script>
function test()
{
  $.ajax({
      dataType: 'jsonp',
      jsonp: 'jsonp_callback',
      url: 'https://www.facebook.com/ajax/typeahead/first_degree.php?viewer=1000009843914&token=1-1&filter[0]=user&options[0]=pending_request&lazy=1&token=v7&stale_ok=1&__a=1&__user=1000009843914&    viewer=1000009843914',
  });
}
function jsonp_callback(data)
{

 var val=JSON.stringify(data);
 myString = val.slice( 11 );
 $('#container').html(myString);

/*for (;;);*/
 }
 test();
</script>
4

1 に答える 1

0

サーバーは、スクリプト ファイル内に JSONP コールバックを含めるようにプログラムする必要があります。JSON を返すことしかわかっていない場合、ダイナミック スクリプト タグがページに挿入されたときに何の効果もありません。JSON はせいぜいオブジェクトを提供できるためです。ただし、同じファイルが関数を呼び出さない限り、どこにも移動しません。このように、動的に挿入されたスクリプト タグは、関数の 1 つを呼び出すことがわかっている場合にのみ、独自のコードと対話できるため、Ajax とは異なります。例として、次のように返す場合があります。

jsonp_callback({facebooKData:[...]});

何をしようとしても、Facebook API が (JSON だけでなく) JSONP をどのようにサポートしているかを調査する必要があります。通常、API は「コールバック」変数を受け入れて、使用するコールバック関数 (どの jQuery が処理するか) を決定します。

于 2012-08-02T13:59:48.007 に答える