在構(gòu)建xmpp web客戶(hù)端的時(shí)候尿赚, 如果網(wǎng)站和xmpp服務(wù)器的域名不一致雄卷,就需要用到跨域請(qǐng)求了豪嗽。
flXHR.js
可以使用 flXHR.js 這個(gè)庫(kù)來(lái)實(shí)現(xiàn)跨域請(qǐng)求珠十,因?yàn)槭褂昧?strophe泥畅,所以需要加載以下兩個(gè)js荠诬。之后會(huì)在 strophe 中會(huì)使用 flxhr 來(lái)發(fā)起請(qǐng)求。
domaincross.xml
使用 flxhr 請(qǐng)求位仁, 需要服務(wù)器在根目錄返回 domaincross.xml 文件, 具體格式點(diǎn)這 ---> 文檔鏈接
ejabberd 配置文件服務(wù)器
ejabberd 的 mod_http_fileserver 組件是專(zhuān)門(mén)用來(lái)配置文件服務(wù)器的組件
但是 mod_http_fileserver 有一個(gè)問(wèn)題:
在加入 mod_http_fileserver 后, web_admin(web admin管理)功能失效了, google 后發(fā)現(xiàn)為 ejabberd 的 bug.
想到的解決的辦法柑贞,是另外一個(gè)端口啟動(dòng) web_admin。
具體配置方法如下:
1.編輯 ejabberd 配置文件聂抢, 將 {5280, ejabberd_http,
開(kāi)頭的這段配置替換成
{5280, ejabberd_http, [
%%captcha, 驗(yàn)證碼功能
%%http_poll
%%web_admin,
{request_handlers, [
{["http-bind"], mod_http_bind},
{[], mod_http_fileserver}
]}
]},
{5281, ejabberd_http, [
web_admin
]}
2.將 {mod_http_fileserver,
開(kāi)頭的一段替換為以下钧嘶,
{mod_http_fileserver, [
{docroot, "/Applications/ejabberd-14.05/www"},
{accesslog, "/Applications/ejabberd-14.05/www/webaccess.log"},
{content_types, [{".xml"}]}
]},
記得把路徑替換成你的。
3.在 /Applications/ejabberd-14.05/www
路徑下加入 domaincross.xml