如何使用jQuery查询neo4j图数据库

3

[早期版本已更新,因为我正在尝试一些东西]

我知道一些javascript,并且我有一个可以在控制台中使用cypher查询的工作neo4j数据库。此外,此curl命令有效:

curl -X POST http://localhost:7474/db/data/cypher --data @test.json -H accept:application/json -H content-type:application/json -H X-Stream:true

但是我想通过jQuery $ajax调用获取结果--实际上,任何可以在javascript中获取JSON结果的方式都可以,不必是jQuery。

这个函数会产生以下消息:

500意外字符('q'(代码113)):预期有效值(数字、字符串、数组、对象、'true'、'false'或'null')[来源: java.io.StringReader@56f31ac6; line:1, column:2]

提前致谢, 卡尔

 function getsomething() {
  var serverURL = "http://localhost:7474/db/data"
  $.ajax({
    type:"POST",
    url: serverURL + "/cypher",
    accepts: "application/json",
    dataType: "json",
    contentType:"application/json",
    headers: { 
      "X-Stream": "true"    
    },
    data:{ "query" : "start n = node(1) return n;"  },
    success: function(data, textStatus, jqXHR){
     alert(textStatus);
    },
    error: function(jqXHR, textStatus, errorThrown){
     alert(errorThrown);
     console.log(textStatus);
    }
  });//end of ajax
  } //end of getSomething()
 getsomething();
1个回答

2
您需要使用HTTP方法POSTdb/data/cypher端点通信。请尝试设置:
type: "POST",

在您调用$.ajax时,您需要注意以下内容。免责声明:本人并未亲自尝试过,只是随意发表个人看法。

更新

请使用JSON.stringify来包装数据部分:
 data: JSON.stringify({
       "query" : "start n = node(*) return n;",
       "params" : {}
     }),

应该提到 - 我开始使用POST,得到了上面提到的结果,然后出于好奇尝试了GET,并错误地将其放在了上面的代码片段中。 - kgeo
请参见我上面回答中的“更新”部分。 - Stefan Armbruster
这个行得通 - 我非常好奇你是从哪里知道或学到的?在黑暗中“开车”的时间真的很令人沮丧。再次感谢你的跟进! - kgeo
不客气,我从一个我用过的项目中找到了一段代码片段。 - Stefan Armbruster
我不需要将我的数据包装在Json字符串中,普通对象对我来说可以正常工作。 - ekkis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接