sql >> Database >  >> NoSQL >> MongoDB

REST AJAX-verzoek aan mongoDB

Deze functionaliteit wordt ondersteund als onderdeel van de Eenvoudige (alleen-lezen) REST-interface maar om domeinoverschrijdende verzoeken te doen, de --jsonp anders ben je onderworpen aan het Beleid van dezelfde oorsprong probleem, aangezien het IP-adres en de poort waarvan u het verzoek doet niet overeenkomen met het IP-adres en de poort waarop mongoDB draait.

Start mongoDB met mongod.exe --rest --jsonp (plus eventuele andere opties die je hebt).

De volgende voorbeeldpagina kan worden bediend via een webserver (bijvoorbeeld Apache HTTP Server ) of gewoon lokaal opgeslagen en in de browser geladen als een bestand . Het verzoek is voor informatie over een dbCollection genaamd andyb , die ik eerst in mongoDB heb gemaakt met:

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>

Veel browsers ondersteunen CORS nu, wat een alternatieve (modernere) manier is om domeinoverschrijdende bronnen te vergemakkelijken.



  1. Mongoose Promise met bluebird en typoscript

  2. Mongodb Waarde verhogen binnen geneste array

  3. MongoDB:match niet-lege doc in array

  4. Vergelijk tussen 2 velden van een document in MongoDB