Openfire和strophe.js:Access-Control-Allow-Origin不允许

时间:2011-03-24 18:56:09

标签: apache xmpp openfire strophe

我正在尝试使用Jabber创建一个网络聊天。我已安装Openfire,我可以登录管理面板:9090,以便服务器正在运行。

现在使用strophe.js基本示例时,使用strophe.js我会收到此错误:

5XMLHttpRequest无法加载http://jabber.xxx.dk:7070/http-bind/。 Access-Control-Allow-Origin不允许原点http://jabber.xxx.dk

我如何允许域名?

5 个答案:

答案 0 :(得分:6)

如果在Openfire中启用CORS并将域策略更改为全部接受后仍然无法正常工作,请检查您的Openfire网址。您可能需要添加' /'最后(例如'http://dimain:7070/http-bind/')。

没有斜线,它对我没用。

答案 1 :(得分:5)

感谢@SamGoody指出这一点。从版本3.8.0开始,OpenFire现在支持1 CORS [2],这是您的用例所需要的。要启用它,请转到OpenFire管理控制台,服务器,服务器设置,HTTP绑定选项卡。确保“提供对CORS(跨源资源共享)的支持”已启用,域列表为*(这些是默认值)。

OpenFire admin screen

答案 2 :(得分:2)

另一种选择是将您的apache服务器设置为代理端口7070,这样您就不会处理跨域问题。在httpd.conf文件中,代码看起来像这样:

ProxyRequests Off
ProxyPass /http-bind http://127.0.0.1:7070/http-bind/
ProxyPassReverse /http-bind http://127.0.0.1:7070/http-bind/

答案 3 :(得分:0)

如果您登录管理面板,请转到“服务器设置”选项卡,然后转到“HTTP绑定”,检查两个选项(HTTP绑定和脚本语法)是否设置为“已启用”

答案 4 :(得分:-2)

我遇到了同样的问题,并且知道端口没有打开访问权限。 虽然浏览器说它是CORS Access-Control-Allow-Origin问题。 这有时是开放端口问题。请确保http绑定端口已打开,并且可以通过正在测试的系统上的tcp访问。