3

私はhttp-bindopenfire を使用してBOSHそのサービスを有効にしてアクセスしていますstropheが、問題はクロムで次のエラーが発生していることです

ここにコンソールのエラーがあります

XMLHttpRequest を読み込めませんhttp://127.0.0.1/http-bind。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません。したがって、オリジン'http://localhost'へのアクセスは許可されません。

ここに画像の説明を入力

ここにリクエストがあります

ここに画像の説明を入力

私はBOSHopenfireで次のように有効にしました

ここに画像の説明を入力

私はapache設定ファイルで次のことを試みましたが、httpd.conf効果はありません

<Proxy /http-bind>
        Order allow,deny
        Allow from all
</Proxy>

ProxyPass /http-bind http://127.0.0.1:7070/http-bind
ProxyPassReverse /http-bind http://127.0.0.1:7070/http-bind
4

1 に答える 1

0

このエラーNo 'Access-Control-Allow-Origin' header is present on the requested resourceは、クロスドメイン (CORS)リクエストを行っており、必要な CORS ヘッダーが利用できないことを示しています。

http-bindBOSH サービス (つまり) が Web サイトとは異なるポートで提供されているため、クロスドメイン リクエストを作成しています。

CORS を有効にした OpenFire の HTTP Bind 設定が表示されます。CORS をサポートしていないブラウザを使用している可能性がありますか? (IE9のように)。

いずれにせよ、CORS を使用する代わりにhttp-bind、HTML が提供されるのと同じドメインおよびポート上にアドレスをリバース プロキシすることで、すべてのブラウザーでこれを解決できます。

Apache のこのスニペットがそれを行います: (ポート 80 でサイトを提供していると仮定しています)。

<VirtualHost *:80>
    ServerName localhost
    RewriteEngine On
    RewriteRule ^/http-bind(.*) http://localhost:7070/http-bind$1 [P,L]
</VirtualHost>

http-bindそのため、サイト自体と同じドメイン (およびポート) でBOSH サービス (つまり ) にアクセスできます。

詳細については、これに関する Converse.js のドキュメントを参照してください。

于 2013-11-15T05:32:49.183 に答える