JavaScriptを使用してリモートサーバーにデータを送信する必要があります。どうすればよいですか?
Background info: JSを使用して情報を抽出するWebページがあり、処理のために別のサーバーに送り返す必要があります。対応は必須ではありません。データはXMLですが、これをURLエンコードしました。
どうすればいいですか?
[〜#〜]編集[〜#〜]
データを要求しているサーバーは、データを受信するサーバーとは異なります。明確にするために。
これを行う最も一般的な方法の1つはAJAXです。 jQueryを使用してAJAX postリクエストを実行する方法は次のとおりです。
<script type="text/javascript">
$.post('/remote-url', {xml: yourXMLString });
</script>
サーバー側では、他のPOSTリクエストと同じように処理します。PHPを使用している場合は、$xml = $_POST['xml'];
AJAX=の最大の制限は、ドキュメントがロードされたのと同じドメイン(別名クロスドメインポリシー)へのリクエストしか許可されないことです。この制限を克服するためのさまざまな方法があります。 、最も簡単なのは [〜#〜] 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);
(おっと、レベデフのアップデートで多かれ少なかれ同じように見えた)
proxy を使用します。つまり、サーバーに他のサーバーと通信させます
JavaScriptのXMLHTTPRequestメソッドを調べてください。または、AJAXのGoogle検索から始めてください。これを行うには多くの方法があります-jQueryのようなJSライブラリを介していくつかの非常に簡単な方法を含みます-しかし、より具体的な答えは、使用している特定のテクノロジーのいくつかのより具体的なものを必要とします。
編集:AJAXリクエストを自分のドメインのサーバー側スクリプト(プロキシとして機能)に投稿するように設定できます)を設定して、そのスクリプトで向きを変え、データをリモートサーバーに投稿できます。 。