【问题标题】:$.getJSON syntax$.getJSON 语法
【发布时间】:2013-02-14 10:07:29
【问题描述】:

我有一个 $.getJSON 调用,它通过调用 Web API 来填充集合:

$.getJSON("/api/rating", self.ratings);

如果我想添加 $.ajax 中的一些选项,例如 beforeSend、data、success 等,我该如何重写?

编辑:我已经尝试了这两种方法,但没有一个警报被击中:

  $.getJSON("/api/rating")
                .beforeSend(function (xhr) {
                    alert("before");
                    $('#divLoading').addClass('ajaxRefresh');
                    xhr.setRequestHeader('X-Client', 'jQuery');
                })
                .success(function (result) {
                    alert(result);
                    self.ratings = result;
                })
                .complete(function (result) {
                    alert("complete");
                    $('#divLoading').removeClass('ajaxRefresh');;
                })
              .error(function () {
                  alert("error");
              });

$.getJSON("/api/rating", self.ratings)
            .beforeSend(function (xhr) {
                alert("before");
                $('#divLoading').addClass('ajaxRefresh');
                xhr.setRequestHeader('X-Client', 'jQuery');
            })
            .success(function (result) {
                alert(result);
                self.ratings = result;
            })
            .complete(function (result) {
                alert("complete");
                $('#divLoading').removeClass('ajaxRefresh');;
            })
          .error(function () {
              alert("error");
          });

【问题讨论】:

标签: javascript jquery asp.net-web-api


【解决方案1】:

$.getJSON 是以下的简写:

$.ajax({
  dataType: "json",
  url: url,
  data: data,
  success: success
});

所以你的样本可以翻译成:

$.ajax({
  dataType: "json",
  url: "/api/rating",
  data: self.ratings,
  beforeSend: beforeSend,
  success: function (json) {
      // handle json
  }
});

等等

【讨论】:

  • 那么 self.ratings 会去哪里?
  • @user517406 什么是self.ratings?此时它可能是数据,也可能是成功处理程序。
【解决方案2】:
$.getJSON(<url>,<data>,<callback>)
 .success(function() {

  })
  .error(function () {
  });

编辑:

.success().error() 已被弃用,因此应使用 .done().fail()

【讨论】:

  • .success 和 .error 被贬低以支持 .done 和 .fail
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-25
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
  • 1970-01-01
相关资源
最近更新 更多