对于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 "*"
我还需要做什么或者其他什么?
答案 0 :(得分:0)
问题似乎是您误解了如何正确启用CORS。标题应在Neo4J Web服务上设置,以向浏览器表示当localhost:80的内容向localhost:7474发出请求时,允许使用响应(来自:7474)。
你当前的设置意味着如果neo4j浏览器页面中的任何内容(在端口7474上)向localhost:80发出请求,那么浏览器将允许它(所以与你所追求的相反)。
有关详细信息,请参阅以下说明:
我不确定修改返回的Neo4j服务器头是多么容易,所以我想你想做的是代理(通过你的Apache服务器)到端口7474的流量,从而将CORS作为一切将进入80端口。如何帮助您进行Chrome扩展,我不确定(抱歉)