对mongoDB的REST AJAX请求

对mongoDB的REST AJAX请求,mongodb,jquery,Mongodb,Jquery,我试图向mongoDB发出XMLHttpRequest,以便通过AJAX检索文档 这是我的代码: function getJsonDocumentByModeldid(model_id) { var valoreInput = document.getElementById('inputModelId').value; alert(valoreInput); $.ajax({ url: "http://localhost:28017/test/",

我试图向mongoDB发出
XMLHttpRequest
,以便通过AJAX检索文档

这是我的代码:

function getJsonDocumentByModeldid(model_id) {
    var valoreInput = document.getElementById('inputModelId').value;
    alert(valoreInput);

    $.ajax({
      url: "http://localhost:28017/test/",
      type: "get",
      //data: "filter_a=" + valoreInput,
      dataType: 'jsonp',
      crossDomain: true,

      success: function (data) {
        alert("success");
        //var json2javascript = $.parseJSON(data);
        manageLayout();
      },

      error: function (XMLHttpRequest, textStatus, errorThrown) {
       alert("Status: " + textStatus + "    Error:" + errorThrown);
      }
  });
}

我的函数总是返回一个错误。那么问题出在哪里呢?

此功能作为的一部分受支持,但要发出跨域请求,则会遇到问题,因为发出请求的IP地址和端口与运行mongoDB的IP地址和端口不匹配

使用
mongod.exe--rest--jsonp
(以及您可能拥有的任何其他选项)启动mongoDB

下面的示例页面可以通过web服务器(例如)提供,也可以简单地保存在本地并作为文件加载到浏览器中。请求是关于名为andyb的dbCollection的信息,我首先在mongoDB中创建了该dbCollection:

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>

mongoDB AJAX演示
//

许多浏览器现在都支持这一功能,这是一种促进跨域资源的替代(更现代)方法。

前面的答案可以通过使用延迟对象进行修改(请参阅本指南: ”):

无论如何,在这两种情况下,
错误:
失败()
处理只有在未提供端口时才起作用。例如:

url:"localhost:28017/asdasdasd"
导致错误处理;而

GET http://localhost:28017/?jsonp=jQuery110207253803350031376_1383522587177&_=1383522587178 404 (OK) 
在控制台中生成404日志,如下所示:


ajax请求与脚本一起失败,相反,如果我在浏览器中复制url,服务器响应将成功。我不知道问题出在哪里…警报错误是JQueryxxxxx没有被调用!是的..我使用命令mongod--rest启动服务器。我尝试使用数据类型json,但问题是加载的JavaScript所运行的页面从web服务器(本地运行)或仅从浏览器中加载的简单HTML页面?这可能是问题所在。是否在浏览器中加载简单页面..这是我的步骤:1)使用命令“mongod.exe--rest”在windows终端中启动服务器“2)如果我单击,我会得到响应。如果我启动脚本,ajax请求就会出错!如何在mongodb的web服务器中加载包含响应脚本的网页?非常感谢您的响应!
url:"localhost:28017/asdasdasd"
GET http://localhost:28017/?jsonp=jQuery110207253803350031376_1383522587177&_=1383522587178 404 (OK)