0

我是 jQuery 的新手。我的应用程序已经构建好了。我看到使用了两个 ajax 方法$.getJSON()和 $.ajax()。我不明白的是,$.getJSON()在成功函数中接收到的数据直接用作对象。

但是如果使用 $.ajax ,我看到了代码 var json = eval('(' + data + ')');,为什么我们需要进行这种转换,为什么$.getJSON()方法不需要它?

下面是 $.ajax() 和 $.getJSON() 代码:

    $.ajax({
    type: 'POST',
    url: ServiceUrl.SystemConfig,
    data: "",
    success : function(data) {
         var json = eval('(' + data + ')');
    }

    $.getJSON('/index', "",
    function(json, textStatus) { })
4

2 回答 2

1

$.getJSON( url [, data ] [, success(data, textStatus, jqXHR) ] )方法是一个快捷方式

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

如果您阅读文档,您会看到。

于 2013-02-15T17:31:32.343 回答
0

$.getJSON 是在 $.ajax 请求中将预期的 Content-Type 设置为 application/json 的快捷方式,它告诉 jQuery 在返回之前将响应解析为 JSON 对象。当您知道您将收到 JSON 时,这非常有用。$.ajax 更通用,因此不知道它会得到 JSON,除非它被明确告知。这意味着来自 $.ajax 的响应没有预先解析,你必须自己做。

于 2013-02-15T17:43:00.217 回答