1

ユーザーが Web サイトの閲覧中にクリックするために追加できるブックマークレットを作成したいと考えています。ブックマークレットをクリックすると、ページ コンテンツの一部が取得され、myserverapi.com に送信されます。

次に、myserverapi.com が応答をブックマークレットに送り返し、結果がユーザーに表示されます (ユーザーがブックマークレットをクリックしたページから離れることはありません)。ユーザーが何かを確認すると、データがもう一度 myserverapi.com に送り返されます。

これは可能ですか?

私は JSONP を認識していますが、私の知る限り、データを取得するためにのみ機能します。情報を何らかの方法でエンコードして、サーバーに前後に送信できるかどうか疑問に思っていました。

ありがとう!


ああ、この使用例では、私がサーバーを制御しているため、CORS が機能します。とにかく、「望まない」サーバーにデータを送信するために前後にデータを送信する必要があるシナリオは考えられません。

4

2 に答える 2

0

では、CORSを使用している場合は、そのデータをサーバーに投稿してみませんか?参照: クロスオリジンリソースシェアリング(CORS)のPOSTリクエストを機能させる方法

于 2012-12-28T03:46:04.413 に答える
0

この質問には回答がありますが、CORS を使用できない場合の回答は次のとおりです。

私は JSONP を知っていますが、私の知る限り、データを取得するためにのみ機能します。情報を何らかの方法でエンコードして、サーバーに前後に送信できるかどうか疑問に思っていました。

あなたはとても近くにいたので、答えはあなたの手の中にありました。

次の 2 つの方法のいずれかで、データをサーバーに送信します。

1.) 最も簡単な方法は、GET を使用することです。JSONP スクリプトは server/jsonp.php?data=antyhing+you+want のようになります。つまり、これは基本的に同じドメインで AJAX 通信を使用する方法と同じですが、XMLHttpRequest を使用して GET を実行する代わりに、スクリプトを追加しています。

2.) 送信するデータが GET で処理できる量を超える場合は、フォームと iFrame を使用してデータを POST できます。フォーム変数の 1 つには、その POST がキーとして使用する一意の ID が含まれている必要があります。POST はデータを返すことができないため、GET メソッドを使用してそのキーに対応する応答を取得する必要があります。POST は非同期であるため、GET はサーバーが成功を返すまでサーバーをポーリングする必要があります。これは、サーバーが対応するキーで POST を受信したかどうかに依存します。

于 2013-01-07T16:05:47.983 に答える