2011-03-24 130 views
2

我試圖使用Jabber創建一個網聊。我已經安裝了Openfire,我可以登錄到9090的管理面板,以便服務器正在運行。Openfire和strophe.js:訪問控制 - 允許來源不允許

現在使用strophe.js時基本的例子,與strophe.js來我得到這個錯誤:

5XMLHttpRequest無法加載http://jabber.xxx.dk:7070/http-bind/。 Access-Control-Allow-Origin不允許產生http://jabber.xxx.dk

我該如何允許域名?

+0

對於任何新來這裏的人來說,這是一個啓動教程,可以設置這一切,https://expertnotfound.wordpress.com/2013/04/08/setting-up-openfire-bosh-strophe/。 – 2016-03-22 15:16:07

回答

5

感謝@SamGoody指出這出。從版本3.8.0開始,OpenFire現在支持1 CORS [2],這是您的使用案例需要的。要啓用它,請轉至OpenFire管理控制檯,服務器,服務器設置,HTTP綁定選項卡。確保「提供對CORS(跨源資源共享)的支持」已啓用,域列表爲*(這些是默認值)。

OpenFire admin screen

+0

OpenFire 3.8.2現在出來了,它支持CORS。 – SamGoody 2013-04-15 08:31:27

+0

謝謝@SamGoody。根據您的評論重寫我的答案。 – 2013-04-15 17:03:11

0

如果您登錄到管理面板,轉到服務器設置選項卡,然後到HTTP綁定,檢查這兩個選項(HTTP綁定和腳本語法)設置爲Enabled

+0

它們都啓用,端口設置爲7070. 這是跨域策略: <?xml version =「1.0」?> <!DOCTYPE跨域策略系統「http:// www \t \t Danielss89 2011-03-26 09:09:33

+0

是/ http-bind /默認文件夾?我應該做些什麼來創建這個文件夾? – Danielss89 2011-03-26 09:10:47

+0

恐怕我沒有HTTP綁定的經驗,只有Openfire本身。既然這不是一個簡單的配置問題,它已經超出了我的深度,但希望別人能夠提供一個答案。 – Marc 2011-03-26 15:23:54

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/ 
6

如果它不能夠在CORS和Openfire的改變域策略接受所有後甚至工作,然後檢查你的URL的Openfire 。您可能需要在末尾添加「/」(例如'http://dimain:7070/http-bind/')。

沒有斜槓它沒有爲我工作。

-1

我曾經遇到過同樣的問題,並且知道端口沒有打開訪問。 雖然它的瀏覽器說它是CORS Access-Control-Allow-Origin問題。 這有時是開放端口問題。請確保http綁定端口已打開,並可通過您正在測試的系統上的tcp進行訪問。

+0

這應該是一條評論。 – sjaustirni 2017-11-22 14:21:29

相關問題