簡體   English   中英

Neo4j:在Ubuntu 16.04中從JavaScript連接到localhost:7474 / REST API

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM