0

Web サービスのフロントエンド (html-jquery) とバックエンド (php) を開発しています。XAMPP(Apache)を使用してローカルホストで開発しています。すべてをきれいにするためだけに、フロントエンドとバックエンドをEclipseの異なるプロジェクト内に保持していました。

ただし、jQuery から php サーバーへの ajax 呼び出し (Http Post 要求) を行う必要がありました。私はいつもエラーが発生します:XMLHttpRequest cannot load http://193.164.4.112/Server_CityInfo/whereSubscribed.php. Origin http://localhost is not allowed by Access-Control-Allow-Origin.

エラーについて調べたところ、Same Origin Policyに関係していることがわかりました。

また、このエラーを解決するための可能な解決策は、 CORS 、 JSONP またはプロキシを使用することです。ただし、エラーの定義から、ファイルを同じディレクトリに保持するだけで問題が解決することがわかりますか? だから私がしたことは、すべてのフロントエンドファイルをバックエンドディレクトリに移動し、htmlページを再度実行してリクエストを作成しようとしたことです。

ブーム!同じエラーが再び表示されます..ここで何か間違ったことをしていますか? それらが同じディレクトリにあるので、今はうまくいくはずではありませんか?

4

1 に答える 1

1

ファイルを同じディレクトリに保持するだけで、問題が正しく解決されます

いいえ。それらは同じオリジン (プロトコル、ホスト名、ポート) にある必要があります。

あなたが持っている:

http  193.164.4.112  80 (default for HTTP) 
http  localhost      80 (default for HTTP) 

193.164.4.112そうではないlocalhostので、同じオリジン ポリシーにヒットします。

193.164.4.112同じマシンに解決され、同じ Web サーバーによって処理され、同じファイルが提供される可能性がありlocalhostますが、ブラウザーはそれを認識しません。URL は一致する必要があります。

于 2013-05-22T08:35:36.977 に答える