使用Jquery ajax json响应?

时间:2013-10-14 19:37:25

标签: jquery ajax json

:有一个像这样的ajax请求:

$.ajax({
          url: "/users/action/",
          type: "POST",
          data: myData,
          context: this,
          error: function () {},
          success : function () {
        $(this).removeClass('disabled');
          }
        });

因此,如果函数成功,则删除“禁用”类。但是,我的函数返回以下json:

{"row":"fze684fz6f4ez68f4ze"}

我想得到这个值所以我以后可以使用它“将它添加到数据元素,即我想添加到点击的元素data-row =”fze684fz6f4ez68f4ze“

我该如何管理?我不知道自己,我发现了AJAX。

非常感谢你的帮助!

3 个答案:

答案 0 :(得分:8)

如果您希望获得json,建议设置dataType。 任何方式都要注意上下文。这可能是this的问题。

$.ajax({
    url: "/users/action/",
    type: "POST",
    data: myData,
    context: this,
    error: function () {},
    dataType: 'json',
    success : function (response) {
        $(this).removeClass('disabled');
        $(this).data("row",response.row);
    }
});

答案 1 :(得分:3)

正如文档明确指出的那样,jQuery将服务器的响应作为success回调的第一个参数传递:

      success : function (response) {
         console.log(response);
      }

答案 2 :(得分:2)

您可以使用jQuery.data( element, key )将返回的响应中的行分配给元素

$('selector').data('row', reseponse.row);

如果你知道元素的id

,你可以使用id选择器
$('#elementId').data('row', response.row);

您可以阅读有关选择器here的更多信息。

您的代码将是

$.ajax({
      url: "/users/action/",
      type: "POST",
      data: myData,
      context: this,
      error: function () {},
      success : function () {
           $(this).removeClass('disabled');
           $('#elementId').data('row', response.row);
     }
});