1

ソーシャル ネットワーキング サイトに「Facebook で共有」のような機能を提供する必要があります。Facebook はネストされた iframe と xd_receiver の概念を使用します。ソーシャルネットワーキングサイトで共有、投稿、または推奨するために、さまざまなサイトで Web サーバー API を呼び出すために使用できる JavaScript API (私のドメインでホストされている JS ファイル) を作成したいと考えています。いくつかの質問を聞きたいんです -

  1. 私は JS API を提供し、差分サイトはソースを使用して JS ファイルをロードしますが、API 呼び出しが行われると、(私が正しく理解していれば) クロスドメイン呼び出しになり、サーバーで拒否されますか? そのような状況をどのように克服しますか?

  2. この機能を実装するための他のより良いメカニズムはありますか?

実装を進めることができるように提案してください。

4

4 に答える 4

1

デフォルトの方法は、jsonp を使用してクロスドメインの制限を回避することだと思います。 http://en.wikipedia.org/wiki/JSONP。ただし、API の変更が必要になる場合があります。srcユーザーは、関数コールバックで渡すスクリプト タグを介して API を要求します。API は、json 応答を指定された関数に渡します。

于 2012-04-30T13:40:07.980 に答える
1

JSONP/画像/スクリプトを使用した単純な get リクエストではなく、なぜ iframe を使用するのか知っていますか?

答えはセキュリティです。ページを自動的に「いいね」するボタンをクリックするスクリプトを書くことができません。

JSONP でプレーンな古い JavaScript を使用すると、開発者はボタンを自動的にクリックできます。そうなりたいですか?

于 2012-04-30T14:19:52.483 に答える
0

リクエストは JS ファイルからではなくブラウザによって行われるため、リクエストは別のドメイン サイトから行われるたびにクロスドメインになります。

リファラー検証を実装している場合、サーバーはクロスドメイン リクエストのみを拒否します。

また、API でサイトのカスタム コンテンツが必要な場合は、JSONP を使用できます...

于 2012-04-30T13:41:35.793 に答える
0

クロス ドメイン リクエストを許可するには、HTTP レスポンスに次のヘッダーを設定する必要があります。

Access-Control-Allow-Origin: *

実装は、使用しているバックエンドによって異なります。

リクエストの Origin ヘッダー内のホストがリクエストのホスト以外の場合、応答の Access-Control-Allow-Origin ヘッダーにリストされた Origin を含める必要があります。このヘッダーを * に設定すると、すべてのオリジンが許可されます。

クロス オリジン リソース共有に関する非常に具体的な情報については、http://www.w3.org/TR/cors/ を参照してください。w3c ドキュメントをあまり読まない場合は、MDN の入門書を参照してください。

注: Internet Explorer は、クロス ドメイン要求に関して独自の処理を行います。この回答は、IE に問題がある場合の良い出発点です。

于 2012-04-30T13:46:48.007 に答える