Can';t通过javascript中的$post在neo4j中创建索引

Can';t通过javascript中的$post在neo4j中创建索引,javascript,jquery,neo4j,Javascript,Jquery,Neo4j,我使用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'); 它工作时,新节点被创建并显示在数据库中

我使用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');
它工作时,新节点被创建并显示在数据库中

不幸的是,当我尝试使用
$post
创建索引时,此语法不起作用:

$.post("http://localhost:7474/db/data/index/node",{"name":"phone"},function(indexInfo) {
        console.log(indexInfo);
}, 'json');
当我尝试使用neo4j http控制台时:

POST http://localhost:7474/db/data/index/node/ {"name": "phone"}
它在创建索引时工作良好


有什么建议可以解释为什么在这种情况下,
$.post
不能正常工作吗?

直接通过JavaScript向Neo4j发送请求是不可能的。可能由于跨源(请求的资源上不存在“Access Control Allow Origin”头,因此不允许访问源“xxyy”)而无法工作

通常,Neo4j在端口7474上运行,因此如果您正在执行来自端口80(默认http端口)的请求,则不允许这样做。此外,如果您从同一端口发出请求(与浏览器一样,您还需要添加在Neo4j配置中启用的身份验证)

安全风险在于,如果您直接从浏览器请求安全的Neo4j,在浏览器中保存用户名和密码将使任何人都可以直接访问您的Neo4j实例


因此,最好的方法是创建一个代理(带有Allow Origin配置),用于验证请求,如果请求有效,则进行身份验证并将其发送到数据库,然后将所需数据返回到浏览器请求。:)

如果您可以将其卷曲,这应该是一个javascript问题。您得到了什么错误?卷曲没有javascript的允许来源限制,因此可能就是问题:)