如何使用AJAX Jquery在Response中传回数据?

时间:2011-01-20 21:22:03

标签: jquery ajax django post

这是我的帖子:

$("#checkin-button").click(function() { 
  var mid = $("input#mid").val();
  var dataString = 'mid='+mid;  
  $.ajax({  
    type: "POST",  
    url: "/game-checkin",  
    data: dataString,  
    success: function() {  
      $('#checkin-form').html("<div id='message'></div>");  
      $('#message').html("<h2>You are checked in!</h2>");  
    }  
  });  
return false;
});  

我发回一个JSON字符串,想在我的Django模板中使用它。如何捕获该响应以在模板中显示?

3 个答案:

答案 0 :(得分:2)

来自API

  

成功(data,textStatus,   XMLHttpRequest的)功能

     

请求时要调用的函数   成功。该函数被传递   三个参数: 返回的数据   来自服务器, 格式化   到'dataType'参数;一个字符串   描述状态;和   XMLHttpRequest对象(可用于   jQuery 1.4)。这是一个Ajax事件。

我认为你必须使用parseJSON()来转换它。

答案 1 :(得分:1)

你可以这样做:

$.post("/game-checkin", {mid: mid }, function(data){
  //response in json format. Example: data.something
}, "json");

答案 2 :(得分:0)

使用此功能作为回调:

success: function(response) {
    alert(response);
}

响应将是您的服务器返回的内容,但是作为文本。如果你必须在Javascript中有效地使用那个JSON,你必须使用这样的eval()函数:eval('('+ response')');它将评估JSON表达式,以便您可以将其分配给这样的对象:

success: function(response) {
    var responseObj = eval('(' + response + ')');
    // use responseObj here
}

我不知道Django,但这是你获得响应并将其评估为JSON的方式。