Apache JSJaC+;Openfire仅在本地工作

Apache JSJaC+;Openfire仅在本地工作,apache,xmpp,openfire,jsjac,Apache,Xmpp,Openfire,Jsjac,到目前为止,我在本地完成了开发,在我的笔记本电脑上安装了一切(Apache、Openfire、JSJaC应用程序),运行非常好。现在我想为Apache/Openfire使用远程服务器。我做了基本相同的步骤,包括整个http绑定。我使用JSJaC提供的simpleclient.html测试设置 现在的交易是,如果我直接在远程服务器上使用simpleclient,例如,它可以工作。如果我在本地使用它(例如http://[local_machine]/simpleclient.html),并且使用相同

到目前为止,我在本地完成了开发,在我的笔记本电脑上安装了一切(Apache、Openfire、JSJaC应用程序),运行非常好。现在我想为Apache/Openfire使用远程服务器。我做了基本相同的步骤,包括整个http绑定。我使用JSJaC提供的simpleclient.html测试设置

现在的交易是,如果我直接在远程服务器上使用simpleclient,例如,它可以工作。如果我在本地使用它(例如http://[local_machine]/simpleclient.html),并且使用相同的设置,我会得到一个503(服务不可用)。这似乎更像是一个网络/Apache问题,而不是Openfire/JSJaC问题,但我不是专家

simpleclient的我的参数:

  • HTTP基:
  • JabberServer:here.domain.org
因此,在我的apache虚拟主机conf文件中,我有以下行:

  • AddDefaultCharset UTF-8
  • ProxyReqests On
  • ProxyPass/http绑定/
因此,http绑定基本上可以工作,因为我可以在simpleclient.html驻留在服务器上时进行连接。到目前为止,我尝试的是:

  • 检查7070是否从外部打开:是
  • 选中的etc/主机-此处为相关行
    • 127.0.0.1本地主机
    • 123.123.123.123 here.domain.org here
  • 检查了apacheconf的限制:找不到任何限制,基本上我到处都有一个“Allow from all”(但我不完全确定应该在哪里查看)
顺便说一句,我可以用Pidgin(例如Pidgin)从笔记本电脑连接到远程服务器。只是JSJaC simpleclient不行。所以我认为是http绑定造成了问题。如果7070端口没有打开,我会理解的,但它是打开的

任何提示或帮助都将不胜感激


克里斯蒂安

好的,我明白了。这是一个跨域脚本问题。我开始研究JSJaC库,注意到它生成了XmlHttpRequests,默认情况下,这些请求不会跨不同的域工作。因此,我必须允许在Openfire服务器上使用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绑定地址的请求是一个代理