[英]Neo4j: connect to localhost:7474/ REST API from JavaScript in Ubuntu 16.04
對於一個Chrome擴展項目,我正在創建一個准HTML + JavaScript頁面來測試Neo4j的REST API。 我在http://localhost:7474/
運行了Neo4j Community Edition 3.0.6,可以連接到/ browser頁面。 我正在Ubuntu 16.04上進行開發
當我從localhost/
的頁面連接時,出現錯誤:
XMLHttpRequest無法加載http:// localhost:7474 / db / data / 。 所請求的資源上沒有“ Access-Control-Allow-Origin”標頭。 因此,不允許訪問源“ http:// localhost ”。 響應的HTTP狀態碼為401。
錯誤:0(…)
我了解我需要在Ubuntu 16.04上設置Apache2,以允許端口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 "*"
我還需要做什么?
問題似乎是您誤解了如何正確啟用CORS。 標頭應在Neo4J Web服務上設置,以向瀏覽器表示,當來自localhost:80的內容向localhost:7474發出請求時,將允許使用響應(來自:7474)。
您當前的設置意味着,如果neo4j瀏覽器頁面(在端口7474上)中的任何內容都向localhost:80發出請求,則瀏覽器將允許它(與您要執行的操作相反)。
有關更多詳細信息,請參見以下說明:
我不確定修改返回的Neo4j服務器標頭有多么容易,所以我想您想做的是通過端口7474代理(通過Apache服務器)流量,因此繞開CORS,因為一切都會進行到端口80。這對您的Chrome擴展程序有何幫助,我不確定(抱歉)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.