質問

別のサーバー(同じドメインとボックス、別のポートだけ)に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 のトリックをいくつか実行できるかもしれませんが、それらはあまりうまく機能しないと思います...間違っている可能性もありますが、しばらく経ちました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top