2013-03-22 72 views
0

我想使用JQuery的$ .ajax请求从服务器检索一些JSON数据。我在JQuery的文档中看过,它们的所有设置都是可选的,这不能帮助我理解我需要或不需要的东西。我不确定我需要什么。以下是我有:JQuery的AJAX请求:检索JSON数据需要什么设置?

JS代码:

function retrieve() { 
    $.ajax({ 
     url : 'some_url', 
     type : 'POST', 
     dataType: 'JSON', 
     contentType : 'application/json', 
     data : JSON.stringify({ 
      key : 'value: ' 
     }), 
     error : function(data) { 
      console.log('error'); 
     }, 
     success : function(data) { 
        // callback function? 
     } 
    }); 
} 

我希望我的.retrieve()方法,以能够接受包含像这样的服务器上的所有阵列的功能:

SomeObject.retrieve(function(array){ 
     // do something w/ array 
} 

问题:我是否需要省略或添加任何设置?我如何生成回调函数,以便在消息下载后我可以使用它的数据?任何答复将不胜感激!谢谢!

+0

回调函数是成功函数。你有“//回调函数?”的那个评论。您可以将函数传递给您的检索方法,并使用此函数初始化成功字段。你为什么不测试你的代码,而不是问它是否会工作? – 2013-03-22 23:12:15

+0

@JB Nizet感谢您的快速回复。我将如何初始化成功字段以创建回调函数?我是否在'成功'设置中创建了一个函数? – andy4thehuynh 2013-03-22 23:17:29

回答

2

要在Ajax响应已成功接收(在下面的例子中,显示一个警告框接收数据)执行的东西:

function retrieve() { 
    $.ajax({ 
     ..., 
     success: function(data) { 
      alert("Yes! AJAX worked. I received the following data: " + data); 
     } 
    }); 
} 

为了能够自定义成功的回调函数传递到您的检索方法:

function retrieve(successCallback) { 
    $.ajax({ 
     ..., 
     success: successCallback 
    }); 
} 
-1

使用JQuery的.get()和.post()更容易理解。使用.get()从服务器检索数据,如下所示:

$.get('ajax/test.html', function(data) { 
    $('.result').html(data); 
    alert('Load was performed.'); 
}); 

这将从test.html获取信息。你需要知道你从哪里获取数据的网址。这可以是您的服​​务器上的控制器。然后函数参数是成功时发生的。在这里它会用你的数据填充结果元素html,并提醒你已经执行了加载。