Jquery 如何获取此ajax调用返回的数据作为变量使用?
Ajax调用的新特性。需要一些指导来开始我的学习,但我想用一个真实的例子 此链接: 将其返回到我的浏览器,这是我将使用的数据的一个很好的示例:Jquery 如何获取此ajax调用返回的数据作为变量使用?,jquery,Jquery,Ajax调用的新特性。需要一些指导来开始我的学习,但我想用一个真实的例子 此链接: 将其返回到我的浏览器,这是我将使用的数据的一个很好的示例: { "meta": { "status": 200, "msg": "OK" }, "response": { "blog": { "title": "David\u2019s Log", "posts": 3981,
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"blog": {
"title": "David\u2019s Log",
"posts": 3981,
"name": "david",
"url": "http:\/\/www.davidslog.com\/",
"updated": 1348785660,
"description": "\u201cMr. Karp is tall and skinny, with unflinching blue eyes and a mop of brown hair. He speaks incredibly fast and in complete paragraphs.\u201d \u2013 NY Observer",
"ask": false
}
}
}
我想我可以以此为起点,但肯定可以采用其他方式:
var tumblrURL = "david.tumblr.com";
jQuery.ajax({
url: "http://api.tumblr.com/v2/blog/" + tumblrURL + "/info",
data: {api_key: "MY_PRIVATE_API_KEY"},
dataType: "jsonp",
});
但我不知道如何正确地解析并返回不同的位,并将它们用作变量或用于调用中的测试
例如,如何获取“状态”或“名称”
当状态为200时,我想用名称(“david”)创建一个var,并将其用于其他选项
或者,如果状态是404,那么我希望执行其他操作(例如返回错误)
请不要有火焰。我正在努力学习,如果我得到一些例子或指针,我将能够继续学习更有趣的东西。我对jQuery的其他方面没有意见,所以这些问题应该没问题
谢谢 jQuery.Ajax
函数:
成功(数据、文本状态、jqXHR)
请求成功时要调用的函数。函数传递三个参数:从服务器返回的数据,根据dataType参数格式化;描述状态的字符串;和jqXHR(在jquery1.4.x中,XMLHttpRequest)对象。从jQuery1.5开始,success设置可以接受一系列函数。每个函数将依次调用。这是一个Ajax事件
您可以将其设置为您自己的函数,该函数将在请求成功后自动执行—为您提供作为普通Javascript对象接收的整个JSON blob。在您的情况下,您可以在data.meta.status
处获取请求的状态,或者在data.response.blog.name
处获取名称
请注意,jQuery还允许在Ajax请求上使用错误处理程序,以类似的方式自动调用:error(jqXHR、textStatus、errorshown)
示例代码:
jQuery.ajax({
url: "http://api.tumblr.com/v2/blog/" + tumblrURL + "/info",
data: {api_key: "MY_PRIVATE_API_KEY"},
dataType: "jsonp",
success: function(data, textStatus, jqXHR) {
// Do whatever you'd like in here with your data
console.log("Got a response from " + data.response.blog.name);
},
error: function(jqXHR, textStatus, errorThrown) {
// Do whatever you'd like in here with your ERROR data
alert("Got an error: " + textStatus);
}
});
通常在ajax调用发生之后,如果请求成功,也就是说,如果您得到了响应
您可以在成功回调函数中访问它
jQuery.ajax({
url: "http://api.tumblr.com/v2/blog/" + tumblrURL + "/info?api_key=MY_PRIVATE_API_KEY", // The url you want to pass
dataType: "jsonp", // The type of format expecting
data: "{}", // Your data to be sent
success: function(result) { // If ajax is a success
alert('Ajax request Success !!');
},
error: error(jqXHR, textStatus, errorThrown) { //If error in ajax
alert('Error occured : ' + errorThrown);
}
});
这只是ajax请求的基本设置。。你有更多的选择,你可以查阅
回调中获得的jsonp数据与示例中的数据类似
这里的结果是一个对象。。通常使用符号或[]符号来访问结果
要获取元数据中的数据,请使用result.meta.status
要获取数据,请使用result.response.blog.name
您可以始终使用console.log(result.meta.status)将值记录到控制台上。谢谢,Peter。有没有机会用小提琴来举个简单的例子?谢谢!这应该给我一个开始。“文本状态”来自哪里?我需要先将其设置为var吗?不需要-注意数据
,文本状态
,jqXHR
,等等。。。在函数中定义,这意味着它们是参数。当jQuery自动调用这些函数时,它会使用预先填充的参数调用它们。啊,是的。我在测试的时候注意到了,你在写作。更多的咖啡因。唯一不能激发的是警觉。我在控制台上得到这个消息:UncaughtTypeError:无法读取未定义的hanks的属性“name”!应该给我一个好的开始。一个问题:我正在发送哪些数据(在您的示例中)?然后,看起来像一些咖啡因和一些阅读。这是可选的。。数据应该在json对象的from中,这些参数是您要发送到服务器的,您要在服务器上执行某些操作并返回。非常感谢!非常有用。我在路上。耶!