Neo4j:在Ubuntu 16.04中从JavaScript连接到localhost:7474 / REST API

时间:2016-09-30 16:07:05

标签: javascript apache ubuntu neo4j cross-domain

对于Chrome扩展程序项目,我正在创建一个简单的HTML + JavaScript页面来测试Neo4j的REST API。我在http://localhost:7474/运行Neo4j Community Edition 3.0.6,可以连接到/浏览器页面。我正在开发Ubuntu 16.04

当我从localhost/的页面连接时,出现错误:

  

XMLHttpRequest无法加载http://localhost:7474/db/data/。没有   '访问控制允许来源'标题出现在请求的上   资源。起源' http://localhost'因此不允许访问。   响应具有HTTP状态代码401   错误:0(...)

据我所知,我需要在Ubuntu 16.04上设置Apache2,以允许端口7474包含“访问控制 - 允许 - 来源”#39; " *"。

的标题

我已将以下行添加到/etc/apache2/apache2.conf并重新启动服务器,但我仍然看到错误:

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

我还需要做什么或者其他什么?

1 个答案:

答案 0 :(得分:0)

问题似乎是您误解了如何正确启用CORS。标题应在Neo4J Web服务上设置,以向浏览器表示当localhost:80的内容向localhost:7474发出请求时,允许使用响应(来自:7474)。

你当前的设置意味着如果neo4j浏览器页面中的任何内容(在端口7474上)向localhost:80发出请求,那么浏览器将允许它(所以与你所追求的相反)。

有关详细信息,请参阅以下说明:

我不确定修改返回的Neo4j服务器头是多么容易,所以我想你想做的是代理(通过你的Apache服务器)到端口7474的流量,从而将CORS作为一切将进入80端口。如何帮助您进行Chrome扩展,我不确定(抱歉)