为什么使用strophe.js的XMPP客户端仍然可以工作,包括flXHR.js
Why XMPP client using strophe.js still working with out including flXHR.js?
我使用ejabberd作为XMPP服务器,我们的一个项目需要有一个XMPP web客户端,为此我参考专业的"XMPP编程与JavaScript和jQuery"由jake moffitt我正在通过第3章hello world应用程序,这里为了使XMPP web客户端使用strophe我必须包括创建java脚本文件,如strophe.js,flXHR.js和strophe. flXHR.js
我已经经历了很多次的例子,但未能连接到服务器,当我使用localhost:5280/http-bind检查bosh连接时,它工作正常!!!!!
与尝试和错误,当我试图连接到xmpp服务器删除flXHR.js,它神奇地连接到xmpp服务器!!!!!
FLxhr.js用于进行跨域调用,如书中所述"Flash有严格的安全策略,但与JavaScript不同,它允许跨域调用将请求发送到允许此类请求的域。"
如果我绕过以上FLxhr.js,我必须使用代理
我使用apache tomcat作为web应用程序服务器,我没有设置任何代理,不包括FLxhr.js文件在我的html页面,但仍然xmpp客户端能够与服务器通信!!
谁能给我解释一下这背后的原因?提前感谢!!
很可能您的XMPP服务器启用了CORS,我知道Openfire现在支持这个。有了CORS, stropheh .js可以在不需要flash(FLxhr.js)提供的解决方案的情况下发出跨域请求,也可以在没有任何服务器端重定向的情况下工作。
跨域资源共享
跨域AJAX实现XMPP http绑定
CORS浏览器支持
如果您想快速检查您的XMPP服务器是否启用了CORS,您应该能够找到托管在服务器根目录上的crossdomain.xml文件。
的例子:
我使用地址http://192.168.0.26:7070/http-bind/
将Strophe连接到XMPP服务器。
由于启用了CORS,因此可以浏览到http://192.168.0.26:7070/crossdomain.xml
,服务器将返回一个XML文件。
- 如何使用多个jquery版本,以便Responsive Slides.js工作
- 无法使FlowType.js工作
- Intellisense没有;t在VS2013中为JS工作
- 有人能解释一下如何#ifeq吗/section键使用handle.js工作
- 使dropzone.js工作的傻瓜指南
- 如何获得侧边栏.js工作
- 如何在没有 Web 服务器的情况下做出响应.js工作
- 创建JS工作,但不显示工具栏
- 无法获得简单的敏捷.js工作
- 通过有错误的 Ajax-Request 打印出 HTML 会阻止进一步的 JS 工作
- Angular JS-工作函数中的“错误:[$interpole:interr]Can't interpole:
- 推特's Bootstrap Popover:赢得't工作,即使其他JS工作正常
- 可以'不要让typeahead.js工作
- 无法让Quicksand.js工作
- 通过Grunt使用Node.js工作SASS预处理器
- 可以'不要让popcorn.js工作
- 不能让Bootstrap modal.js工作
- 我怎么能与wordpress中的wow.min.js工作
- 无法让haxe-pixi.js工作-我得到一个空白的白色屏幕
- 不能让impress.js工作