MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

REST AJAX-Anfrage an mongoDB

Diese Funktionalität wird als Teil der einfachen (schreibgeschützten) REST-Schnittstelle Um jedoch domänenübergreifende Anfragen zu stellen, verwenden Sie den --jsonp andernfalls unterliegen Sie der Richtlinie zur gleichen Herkunft Problem, da die IP-Adresse und der Port, von denen Sie die Anfrage stellen, nicht mit der IP-Adresse und dem Port übereinstimmen, auf denen mongoDB ausgeführt wird.

Starten Sie mongoDB mit mongod.exe --rest --jsonp (plus alle anderen Optionen, die Sie möglicherweise haben).

Die folgende Beispielseite kann über einen Webserver (zum Beispiel Apache HTTP Server ) bereitgestellt werden ) oder einfach lokal gespeichert und als Datei im Browser geladen . Die Anfrage bezieht sich auf Informationen über eine dbCollection namens andyb , die ich zuerst in mongoDB erstellt habe mit:

db.createCollection('andyb');

HTML

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>mongoDB AJAX demo</title>
  <script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
  <script type='text/javascript'>//<![CDATA[
  $(function(){
    $.ajax({
      url: 'http://localhost:28017/local/andyb',
      type: 'get',
      dataType: 'jsonp',
      jsonp: 'jsonp', // mongod is expecting the parameter name to be called "jsonp"
      success: function (data) {
        console.log('success', data);
      },
      error: function (XMLHttpRequest, textStatus, errorThrown) {
        console.log('error', errorThrown);
      }
    });
  });//]]>
  </script>
</head>
<body>
</body>
</html>

Viele Browser unterstützen CORS was jetzt eine alternative (modernere) Möglichkeit ist, domänenübergreifende Ressourcen zu erleichtern.