如何使用jQuery / ajax发出GET请求?

时间:2013-06-01 16:26:58

标签: javascript jquery mongodb rest angularjs

我正在尝试从在mongolab上运行的mongodb数据库加载数据。文档非常好但是有很多关于PUT和POST的例子很奇怪但GET没有任何内容:

https://support.mongolab.com/entries/20433053-REST-API-for-MongoDB

有人能告诉我如何使用REST将数据加载到对象中吗?假设url中的查询将始终返回单个文档或没有文档。

我想它是这样的:

  $scope.getDocument = function() {
    // alert("called");
    $.ajax( { url: "MY QUERY",
     data:  //????????
     type: "GET",
     contentType: "application/json" } );
  };

有人能引导我吗?

编辑:我现在有了这个并且它有点工作,但显然我的回归是“[对象]” - 如何从中获取有意义的数据?

$scope.getDocument = function() {
  $.ajax( { url: "MY QUERY",
  type: "GET",
  success: function(data){
         alert(data);
       }
     }
     );
  };

EDIT2:现在我有了这个,但由于某种原因,我无法从JSON中提取字段:

  $scope.getDocument = function() {
    // alert("called");
    $.ajax( { url: "MY QUERY",
     type: "GET",
     dataType: 'json',
     success: function(data){
         $scope.userId=data.userid; // THIS DOES NOT WORK
         $scope.foo=true; // THIS DOES

       }
     }
 );
 };

2 个答案:

答案 0 :(得分:1)

GET请求不会向服务器发送数据,这就是为什么忽略了ajax调用设置的data字段。

警告消息为您提供[object Object],因为这是toString的标准Object实施。如果要查看服务器返回的内容使用console.log(data),如果服务器返回了JSON,您将在开发控制台上看到它。

此外,如果您使用任何网络开发工具(例如Chrome / Firefox / Safari的开发者控制台),您可以检查您的JavaScript代码正在执行的网络调用,这样您就可以看到请求和响应的详细信息越来越好了。

如果您不知道如何在Chrome上打开开发者控制台:点击菜单按钮 - >工具 - >开发者工具。然后在开发人员工具窗口中转到“网络”选项卡,然后重新加载页面以查看请求。

BTW:要在网络选项卡中仅查看AJAX调用,请使用底部的XHR过滤器(这意味着XMLHttpRequest是用于执行ajax调用的对象)。如果您使用Firefox + Firebug,则步骤类似。如果你使用IE ..你也有一个开发控制台,但至少在IE8中太初级了,所以最好使用一些webkit浏览器或firefox。

答案 1 :(得分:0)

是的,它可能与您的代码非常相似。您应该添加成功回调来管理响应:

$.ajax({
 url: 'your url',
 type: 'get',
 // you can use data to include url path parameters. For example:
 // data: {pageIndex: 1, pageSize: 5},
 contentType: 'application/json',
 // This is the key
 success: function(data, response, xhr){
   // data variable should contain your info. You can inspect the fields:
   console.log(JSON.stringify(data));
 }
});

有关回调参数的详细信息,您可以查看this