API REST GET / POST utilisant jquery AJAX pour obtenir un noeud à l’aide de la firebase database de graphes neo4j

Je suis nouveau dans l’API REST ** (est-ce vraiment mon problème REST?) **

Je veux obtenir tous les nœuds de neo4js en utilisant Cypher

START n = node(*) return n; 

comment puis-je utiliser si j’utilise jquery ajax POST ou méthode GET

en doc il recommande

 POST http://localhost:7474/db/data/cypher Accept: application/json Content-Type: application/json 

Dans mon code j’écris

  $.ajax({ type:"POST", url: "http://localhost:7474/db/data/cypher", accepts: "application/json", dataType:"json", contentType:"application/json", data:{ "query" : "start n = node(*) return n", "params" : {} }, success: function(data, textStatus, jqXHR){ alert(textStatus); }, error:function(jqXHR, textStatus, errorThrown){ alert(textStatus); } });//end of placelist ajax 

Quel est mon problème? L’alerte d’erreur est ci-dessous
entrez la description de l'image ici

Vous ne dites pas quel genre d’erreur vous obtenez, mais en exécutant exactement le même code que vous, j’obtiens l’erreur suivante:

 XMLHttpRequest cannot load http://127.0.0.1:7474/db/data/cypher. Origin http://127.0.0.1:3000 is not allowed by Access-Control-Allow-Origin. 

Donc, je suppose que c’est l’erreur que vous rencontrez.

Lorsque vous effectuez un appel Ajax entre domaines, vous avez le choix entre deux options:

  1. JSONP , que Neo4J ne supporte pas.

  2. Partage de ressources d’origine croisée (CORS). “L’idée de base de CORS est d’utiliser des en-têtes HTTP personnalisés pour permettre au navigateur et au serveur de se connaître suffisamment pour déterminer si la demande ou la réponse doit réussir ou échouer” .

La demande OPTIONS envoyée avant le POST ( demande de contrôle en amont ) renvoie les en-têtes suivants du serveur Neo4J REST:

 Access-Control-Allow-Origin:* Allow:OPTIONS,POST Server:Jetty(6.1.25) 

Il manque ici un en-tête cruical, à savoir l’en Content-Type tête Content-Type . Cela signifie que la demande POST échouera lorsque cet en-tête est envoyé avec la demande POST, ce qui correspond exactement à ce qui se passe dans votre appel $ .ajax ().

Le POST réussira si vous supprimez la ligne suivante

 contentType:"application/json", 

depuis votre $.ajax() .

Cela empêchera jQuery d’envoyer l’en-tête Content-Type.