0

我有一个 $.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");
          });
4

2 回答 2

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
  }
});

等等

于 2013-02-13T18:01:43.610 回答
1
$.getJSON(<url>,<data>,<callback>)
 .success(function() {

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

编辑:

.success()并且.error()已被弃用,因此.done().fail()改为使用。

于 2013-02-13T18:04:32.640 回答