Javascript 如何使用jQuery/ajax发出GET请求?
我正在尝试从mongodb数据库加载数据,该数据库在mongolab上运行。文档非常好,但奇怪的是,有PUT和POST的示例,但GET却没有: 有人能告诉我如何使用REST将数据加载到对象吗?假设url中的查询总是返回单个文档或不返回任何文档 我想是这样的:Javascript 如何使用jQuery/ajax发出GET请求?,javascript,jquery,mongodb,rest,angularjs,Javascript,Jquery,Mongodb,Rest,Angularjs,我正在尝试从mongodb数据库加载数据,该数据库在mongolab上运行。文档非常好,但奇怪的是,有PUT和POST的示例,但GET却没有: 有人能告诉我如何使用REST将数据加载到对象吗?假设url中的查询总是返回单个文档或不返回任何文档 我想是这样的: $scope.getDocument = function() { // alert("called"); $.ajax( { url: "MY QUERY", data: //????????
$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
}
}
);
};
是的,它可能与您的代码非常相似。您应该添加成功回调以管理响应:
$.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));
}
});
有关回调参数的更多信息,请检查是的,它可能与您的代码非常相似。您应该添加成功回调以管理响应:
$.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));
}
});
有关回调参数的更多信息,可以检查GET requests不向服务器发送数据,这就是ajax调用设置的
data
字段被忽略的原因
该警报消息将为您提供[object object]
,因为这是对象的标准toString
实现。如果您想查看服务器返回的内容,请使用console.log(data)
,如果服务器返回JSON,您将在开发控制台上看到它
此外,如果您使用任何web开发工具(如Chrome/Firefox/Safari的开发人员控制台),您可以检查JavaScript代码正在执行的网络调用,这样您就可以看到所获得的请求和响应的详细信息
如果你不知道如何打开开发者控制台,在Chrome上:点击菜单按钮->工具->开发者工具。然后在“开发人员工具”窗口中,转到“网络”选项卡并重新加载页面以查看请求
顺便说一句:要在网络选项卡中仅查看AJAX调用,请使用底部的XHR过滤器(它意味着XMLHttpRequest,它是用于执行AJAX调用的对象)。如果您使用Firefox+Firebug,步骤类似。如果你使用IE。。您也有一个开发控制台,但至少在IE8中还太初级,所以最好使用一些webkit浏览器或firefox。GET请求不会向服务器发送数据,这就是为什么您的ajax调用设置的数据字段被忽略的原因
该警报消息将为您提供[object object]
,因为这是对象的标准toString
实现。如果您想查看服务器返回的内容,请使用console.log(data)
,如果服务器返回JSON,您将在开发控制台上看到它
此外,如果您使用任何web开发工具(如Chrome/Firefox/Safari的开发人员控制台),您可以检查JavaScript代码正在执行的网络调用,这样您就可以看到所获得的请求和响应的详细信息
如果你不知道如何打开开发者控制台,在Chrome上:点击菜单按钮->工具->开发者工具。然后在“开发人员工具”窗口中,转到“网络”选项卡并重新加载页面以查看请求
顺便说一句:要在网络选项卡中仅查看AJAX调用,请使用底部的XHR过滤器(它意味着XMLHttpRequest,它是用于执行AJAX调用的对象)。如果您使用Firefox+Firebug,步骤类似。如果你使用IE。。你也有一个开发控制台,但至少在IE8中太初级了,所以最好使用一些webkit浏览器或firefox。阅读,我发现它很有用。我正在编写一个客户端应用程序,考虑阅读,我发现它很有用。我正在编写一个客户端应用程序,你能告诉我如何从数据库获取的数据中提取字段并将其分配给变量吗?你的帖子非常有用,谢谢!数据是一个对象,所以您可以像访问任何对象一样访问它:data.field
console.log(data)
显示所有对象字段的转储(在Chrome/Firefox中,您甚至可以展开它并从控制台“导航”)。使用JSON.stringify——就像在另一个答案中一样——将为您提供类似的信息(但不是必需的……至少在Chrome/Firefox中是这样)。另外,要查看请求/响应详细信息,请在网络面板中单击它,它将在调试方面帮助您很多。。。您可以使用“debugger”关键字停止应用程序并检查变量,只需将其添加到成功回调中,然后打开开发人员工具。当点击“debugger”时,执行将停止,您可以检查那里的所有变量。不幸的是,当我写入console.log(data)
时,我得到的是ReferenceError:数据未定义。我使用angularjs,所以所有变量都在控制器“类”(?)内。当我将这一行添加到成功部分时:$scope.userId=data.userId不幸的是什么也没发生。我正在加载的json对象有“userid”字段。我想将该字段下的值赋给“userId”变量。我在示例中基于响应:)(其中数据定义为success函数的参数)。因为我没有足够的细节来帮助你解决这个错误。。。尝试调试器
关键字或断点,即:调试器$scope.userId=/*…*/
,则可以使用调试器检查所有上下文。有关调试的更多帮助,请参阅:您能否指导我如何从我从db获得的数据中提取字段并将其分配给变量?你的帖子非常有用,谢谢!数据是一个对象,所以您可以像访问任何对象一样访问它:data.field
console.log(data)
显示所有对象字段的转储(在Chrome/Firefox中,您甚至可以展开它并从控制台“导航”)。使用JSON.stringify——就像在另一个答案中一样——将为您提供类似的信息(但不是必需的……至少在Chrome/Firefox中是这样)。另外,要查看请求/响应的详细信息,请在网络面板中单击它,这将对您的调试有很大帮助