我正在尝试通过Openfire启用BOSH连接,以便我可以通过Web创建XMPP客户端。目前我用strophe.js测试它。
问题是当我尝试在浏览器中触发以下网址时
http://www.mydomain.com:7070/http-bind
以下错误
HTTP ERROR 400
Problem accessing /http-bind/. Reason:
Bad Request
Powered by Jetty://
这是我的服务器设置,我看到几个线程,但他们没有帮助
更新
我使用strophe建立了连接,但我在浏览器恍惚状态下出现以下错误
答案 0 :(得分:9)
它现在在我的系统中工作。
我认为您遇到的错误实际上可能是openfire的配置问题。
如果请求中没有元素,它的目的是回复HTTP 400 Bad Request。您可以通过在查询中提供元素来自行测试。
在浏览器中尝试以下网址:
http://www.servername:7070/http-bind/?<body rid="1"/>
答案 1 :(得分:2)
在您的更新中,Strophe正在发送OPTIONS HTTP请求,这意味着它正在协商跨域通信。请求被涂成红色,这意味着由于某种原因这是失败的。可能是配置错误。 这里有一篇很好的文章:http://metajack.im/2010/01/19/crossdomain-ajax-for-xmpp-http-binding-made-easy/
否则,当Strophe进行常规BOSH通信时,它使用POST方法。
答案 2 :(得分:0)
您的设置正确无误。浏览器向您显示的页面也很正常。 Openfires BOSH组件不适用于使用HTTP GET的浏览器,只适用于像strophe这样的BOSH客户端。尝试连接strophe。
答案 3 :(得分:0)
您应该使用代理将请求重新发布到openfire服务器。因为,js帖子不能支持跨域。
注意:
我使用jsjac,但我认为这并不重要
2.如果您确定配置正确,请重启您的openfire服务器。这是我的经历。
答案 4 :(得分:0)
如果服务器配置正确,则应显示
HTTP ERROR: 404
Problem accessing /http-bind/. Reason:
Not Found
Powered by Jetty://
当我卸载并重新安装Openfire时,错误的请求消失了 here