javascript - 无法通过 JavaScript 中的 $post 在 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');

它起作用了,新节点被创建并出现在数据库中。

不幸的是,当我尝试使用 $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” header 。因此不允许访问源“xxyy”)。

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

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

因此,最好的方法是创建一个代理(具有“允许来源”配置),该代理验证请求,如果它是有效的,则进行身份验证并将其发送到数据库,然后将请求所需的数据返回给浏览器。 :)

关于javascript - 无法通过 JavaScript 中的 $post 在 Neo4j 中创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15434214/

相关文章:

JQuery - 如何将带有 br 的 html 转换为带有 p 的 html?

javascript - 将函数值传递给 Jquery 函数回调

javascript - 当多选选项设置为 true 时,为复选框列添加自定义格式化程序

neo4j - 如何只匹配两个节点之间的一种关系

java - TP3 : Gremlin traversal and adding edges remotely with Java client

docker - 使用 LOAD CSV 将本地文件导入 Docker 容器中的 Neo4j

javascript - 如何在视频端调用函数? (HTML5 和 mediaelementjs)

javascript - 在 Javascript 中组合正则表达式

javascript - 简单的 PHP 数组到 Javascript 数组

javascript - 修改数字输入以仅接受数字