質問
別のサーバー(同じドメインとボックス、別のポートだけ)にAJAX呼び出しを行いたいです。
私のページは
http://localhost/index.html
次のような ajax get リクエストを実行したいと考えています。
http://localhost:7076/?word=foo
このエラーが発生します:
Access to restricted URI denied (NS_ERROR_DOM_BAD_URI)
別のドメインに ajax リクエストを送信できないことはわかっていますが、これには別のポートも含まれているようですか?何か回避策はありますか?
解決
ポート 80 サーバー上に特定のページがあり、他のポートへのリクエストをプロキシします。例えば:
http://localhost/proxy?port=7076&url=%2f%3fword%3dfoo
最後のクエリ文字列引数値の URL エンコーディングに注意してください。
他のヒント
JSONP を使用することもできます。ここでリクエストでコールバックを指定します。ajax リクエストからのレスポンスはコールバック関数名でラップされます。XmlHttpRequest を使用するのではなく、URL を含むタグを HTML ドキュメントに挿入します。次に、応答が取得されるとコールバック関数が呼び出され、データがパラメータとして渡されます。
これをチェックして ブログ投稿 例として
これはブラウザの制限です。すべての JavaScript 呼び出しは、スクリプトのホームと同じサーバーおよびポートに対して行う必要があります。これを回避するにはサーバー側で何かが必要になります。I.E.でプロセスを実行してください localhost
リクエストを~に転送する localhost:7076
.
面倒だけど、必要なことなんだよ…基本的に行う必要があるのは、ローカル プロキシ経由で AJAX リクエストをプロキシすることです - サーバー側のスクリプト/ページ/あなたがいるのと同じドメイン上の何か - 呼び出しを受信し、それを他のリソース サーバーに転送します -側。IFRAME のトリックをいくつか実行できるかもしれませんが、それらはあまりうまく機能しないと思います...間違っている可能性もありますが、しばらく経ちました。