可以使用 flXHR.js 这个库来实现跨域请求,因为使用了 strophe,所以需要加载以下两个js。之后会在 strophe 中会使用 flxhr 来发起请求。
使用 flxhr 请求, 需要服务器在根目录返回 domaincross.xml 文件, 具体格式点这 ---> 文档链接
ejabberd 的 mod_http_fileserver 组件是专门用来配置文件服务器的组件
在加入 mod_http_fileserver 后, web_admin(web admin管理)功能失效了, google 后发现为 ejabberd 的 bug.
想到的解决的办法,是另外一个端口启动 web_admin。
1.编辑 ejabberd 配置文件, 将 {5280, ejabberd_http, 开头的这段配置替换成
2.将 {mod_http_fileserver, 开头的一段替换为以下,
记得把路径替换成你的。
3.在 /Applications/ejabberd-14.05/www 路径下加入 domaincross.xml
首先,看这两者的区别,XMPP 是一个应用层协议,其底层(传输层和网络层)依然是Socket通信。换句话说,XMPP是建立在Socket通信基础上的。关于层次的问题,又懵乎了吧。它们两者都是基于网络应用,而网络由下往上分为 物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。如此,两者之间可以看出区别了吧。