2016-09-30 44 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

你应该发布一个新问题(检查谷歌还没有答案给你......),因为这完全改变了你当前问题的范围 –