1

人々が私とライブチャットできるウェブサイトの機能を作成しています。これを行うために、サイトの通常の部分を php と apache で構築し、チャット サーバーを node.js で構築しました (socket.io と Express を使用)。人々が私たちのサイトにアクセスすると、私とチャットしたい場合は横からスライドする小さなバーがあります (ポップアップではなく同じウィンドウ内)。チャット サーバーが実行されていると、クライアントが接続しようとしていることがわかります。

info  - socket.io started
Express server listening on port 8000 in development mode
debug - client authorized
info  - handshake authorized 776963641537662118

Websockets または XHR 経由で接続しようとすると、それ以上先に進みません。コンソールのクライアント側で次のエラーが表示されます。

XMLHttpRequest cannot load http://wundertutor.com:8000/socket.io/1/?t=1356208544112. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.

また、私は .htaccess ファイルにこれを持っています:

<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
4

2 に答える 2

2

この質問が出されてから長い時間が経っていることは承知していますが、ノード アプリケーションで CORS も許可するようにしてみてください。これは次の方法で実行できます。

io.set('origins', 'http://example.com:80');

example.com は、リクエストの送信元です。これは私が自分のアプリで行ったことであり、CORS リクエストを許可しました。

于 2014-12-04T20:04:53.207 に答える
0

その mod_headers.c の影響を受けるコンテンツに他のドメインがアクセスできるようにしたい場合を除き、次のようにアクセス制御をドメインに制限します。

<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin http://wundertutor.com/
</IfModule>

つまり、エラーの原因となっているワイルドカード「*」を削除します。

于 2012-12-22T21:58:33.583 に答える