2016-09-30 45 views
0

對於Chrome擴展項目,我創建了一個簡單的HTML + JavaScript頁面來測試Neo4j的REST API。我有Neo4j Community Edition 3.0.6,運行在http://localhost:7474/,可以連接到/瀏覽器頁面。我在Ubuntu 16.04Neo4j:從Ubuntu的JavaScript連接到localhost:7474/REST API 16.04

當我在localhost/從頁面連接發展中,我得到的錯誤:

XMLHttpRequest cannot load http://localhost:7474/db/data/ . No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost ' is therefore not allowed access. The response had HTTP status code 401.
Error: 0(…)

我明白,我需要建立的Apache2在Ubuntu 16.04允許端口7474到包括'*'的'Access-Control-Allow-Origin'標頭。

我加入以下行/etc/apache2/apache2.conf並重新啓動服務器,但我仍然看到的錯誤:

LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so 
Header always set Access-Control-Allow-Origin "*" 

更何況還是別的什麼,我需要做什麼?

回答

0

此問題似乎是您誤解了如何正確啓用CORS。標題意圖在Neo4J webservice上設置,以表示瀏覽器,當localhost:80的內容向localhost:7474發出請求時,允許使用響應(來自:7474)。

你當前的設置意味着如果neo4j瀏覽器頁面(端口7474)中的任何內容向localhost:80發出請求,那麼瀏覽器將允許它(與您所在的方向相反) 。

看到這些說明更多細節:

我不知道它是多麼容易修改回來的Neo4j的服務器頭,所以我想象你想要做的是代理(通過你的Apache服務器)流量到端口7474,因此一邊走CORS,一切都會去到端口80.如何可以幫助您的鉻擴展,我不知道(對不起)

+0

所以我的問題變成:我需要代理流量端口7474的步驟是什麼? –

+0

你應該發佈一個新問題(檢查谷歌還沒有答案給你......),因爲這完全改變了你當前問題的範圍 –