javascriptを使用してリモートサーバーにデータを送信する必要があります。どうすればよいですか?
背景情報: JSを使用していくつかの情報を抽出するWebページがあり、処理のために別のサーバーに送り返す必要があります。応答は必要ありません。データはXMLで、URLエンコードしました。
どのようにこれを行うでしょうか?
編集
私がデータを要求しているサーバーは、データを受信するサーバーと同じではありません。明確にするために。
javascriptを使用してリモートサーバーにデータを送信する必要があります。どうすればよいですか?
背景情報: JSを使用していくつかの情報を抽出するWebページがあり、処理のために別のサーバーに送り返す必要があります。応答は必要ありません。データはXMLで、URLエンコードしました。
どのようにこれを行うでしょうか?
編集
私がデータを要求しているサーバーは、データを受信するサーバーと同じではありません。明確にするために。
これを行う最も一般的な方法の1つはAJAXです。jQueryを使用してAJAX投稿リクエストを実行する方法は次のとおりです。
<script type="text/javascript">
$.post('/remote-url', {xml: yourXMLString });
</script>
サーバー側では、他のPOSTリクエストと同じように処理します。PHPを使用している場合は、$xml = $_POST['xml'];
AJAXの最大の制限は、ドキュメントがロードされたのと同じドメイン(別名クロスドメインポリシー)に対してのみリクエストを行うことができることです。この制限を克服するにはさまざまな方法がありますが、最も簡単な方法の1つはJSONPです。
UPD。クロスドメインリクエストの場合、非常に単純な(ユニバーサルではありませんが)ソリューションは次のようになります。
(new Image).src = 'http://example.com/save-xml?xml=' + escape(yourXMLString)
これにより、GETリクエストが発行されます(Internet Explorerでは2KBを超えることはできません)。POSTリクエストまたはより大きなリクエストボディのサポートがどうしても必要な場合は、ドメインで中間サーバーサイドスクリプトを使用するか、動的に作成されたhtmlフォームをiframeに投稿できます。
Webバグを使用する(画像を作成し、ソースを必要なURLに設定します-小さいGETリクエストのみ)
var img = new Image();
img.src="http://www.otherserver.com/getxml?xml="+encodeURIComponent(yourXML);
(おっと、私はレベデフが彼のアップデートで多かれ少なかれ同じことをしたのを見ます)
プロキシを使用します。つまり、サーバーが他のサーバーと通信するようにします。
JavascriptのXMLHTTPRequestメソッドを調べてください。または、GoogleでAJAXを検索してください。これを行う方法はたくさんあります-jQueryのようなJSライブラリを介した非常に簡単な方法を含みます-しかし、より具体的な答えには、使用している特定のテクノロジーに関するより具体的な方法が必要になります。
編集:自分のドメインのサーバー側スクリプト(プロキシとして機能)に投稿するようにAJAXリクエストを設定し、そのスクリプトを有効にしてデータをリモートサーバーに投稿することができます。