我使用neo4j REST API,JS和JQuery创建简单的Web应用程序。我可以使用$post
:
$.post("http://localhost:7474/db/data/node",
{
"name":data[i].name,
"phone":data[i].phone
},
function(jsonData) {
newlyCreated = jsonData.self;
},
'json');
可行,新节点已创建并显示在db。
中不幸的是,当我尝试使用$post
创建索引时,此语法不起作用:
$.post("http://localhost:7474/db/data/index/node",{"name":"phone"},function(indexInfo) {
console.log(indexInfo);
}, 'json');
当我尝试使用neo4j http console:
POST http://localhost:7474/db/data/index/node/ {"name": "phone"}
工作正常,索引已创建。
有关$.post
在这种情况下无效的原因的任何建议吗?
答案 0 :(得分:0)
通过JavaScript直接向Neo4j发送请求是禁止的。可能它因为Cross Origin而无法工作(No' Access-Control-Allow-Origin'标题出现在请求的资源上。因此不允许来源' xxyy'访问)。
通常Neo4j在端口7474上运行,因此如果您从端口80(默认的http端口)执行请求,则不允许。此外,如果您从同一端口发出请求(如浏览器那样,您还需要在Neo4j配置中添加身份验证)
安全风险是,如果您直接向浏览器请求安全的Neo4j,则在浏览器中保存用户名和密码将允许任何人直接访问您的Neo4j实例。
所以最好的方法是创建一个代理(带有Allow Origin配置),验证请求以及它是否是有效的,验证并将其发送到数据库,并返回所需的浏览器请求数据。 :)