0

これまでのところ、すべて (Apache、Openfire、JSJaC アプリケーション) をラップトップ上で実行して、完全にローカルで開発しました。今、Apache/Openfire 用のリモート サーバーを使用したいと考えています。私は基本的に同じ手順を実行しました。http-bind 全体。JSJaC が提供する simpleclient.html で設定をテストします。

リモートサーバーで simpleclient を直接使用すると、 http ://here.domain.org/simpleclient.html のように動作します。ローカルで使用すると (例: http://[local_machine]/simpleclient.html)、同じ設定で 503 (サービスを利用できません) が返されます。Openfire/JSJaC よりもネットワーク/Apache の問題のようですが、私は専門家ではありません。

simpleclient の私のパラメータ:

したがって、Apache仮想ホストのconfファイルには次の行があります。

したがって、simpleclient.html がサーバー上に存在する場合に接続できるため、基本的に http バインドは機能します。私がこれまでに試したこと:

  • 7070がexternから開いているかどうかを確認しました:はい
  • etc/hosts をチェック - ここに関連する行
    • 127.0.0.1 ローカルホスト
    • 123.123.123.123 here.domain.org here
  • 制限についてApache confをチェックしました:何も見つかりません。基本的に、どこにでも「すべてから許可」があります(ただし、どこを見ればよいか完全にはわかりません)

ところで、たとえば Pidgin を使用すると、ラップトップからリモート サーバーに接続できます。JSJaC の simpleclient だけでは不十分です。したがって、問題の原因は http-bind だと思います。ポート 7070 が開いていないかどうかはわかりますが、開いています。

ヒントやヘルプをいただければ幸いです。

キリスト教徒

4

1 に答える 1

0

はい、分かりました。これは、クロスドメイン スクリプティングの問題でした。JSJaC ライブラリを調べ始めたところ、デフォルトでは異なるドメイン間では機能しない XmlHttpRequests が作成されることに気付きました。したがって、Openfire-Server 上の Apache でこれを許可する必要がありました。VirtualHost conf ファイルに次のエントリを追加しました。

    Header always set Access-Control-Allow-Origin "*"
    Header always set Access-Control-Methods "POST, GET, OPTIIONS"
    Header always set Access-Control-Allow-Credentials true
    Header always set Access-Control-Allow-Headers "Content-Type, *"

もちろん、これにはmod_headersモジュールをロードする必要があります。

どのエントリが実際に必要かはわかりません。すべての組み合わせを試したわけではありません。http-bind アドレスへのリクエストはプロキシであるため、が必要だと思いますalways

于 2011-11-11T11:36:05.240 に答える