Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何获取此ajax调用返回的数据作为变量使用?_Jquery - Fatal编程技术网

Jquery 如何获取此ajax调用返回的数据作为变量使用?

Jquery 如何获取此ajax调用返回的数据作为变量使用?,jquery,Jquery,Ajax调用的新特性。需要一些指导来开始我的学习,但我想用一个真实的例子 此链接: 将其返回到我的浏览器,这是我将使用的数据的一个很好的示例: { "meta": { "status": 200, "msg": "OK" }, "response": { "blog": { "title": "David\u2019s Log", "posts": 3981,

Ajax调用的新特性。需要一些指导来开始我的学习,但我想用一个真实的例子

此链接:

将其返回到我的浏览器,这是我将使用的数据的一个很好的示例:

{
    "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中,这些参数是您要发送到服务器的,您要在服务器上执行某些操作并返回。非常感谢!非常有用。我在路上。耶!