ajax和getJSON调用之间的区别?

时间:2013-03-20 18:45:46

标签: javascript json jquery

我有一个位于http://server/application的Web.API应用程序提供的页面。在客户端,我正在进行GET以从服务器中提取一些数据。问题是我认为应该工作的不是。

此代码有效:

$.ajax( {
    url: "api/slideid/getdirectories/",
    dataType: 'json',
    success: function ( data ) {
        setPaths( data );
    }
} );

但这不是:

$.getJSON( "api/slideid/getdirectories/",
    function ( data ) {
        setPaths( data );
    } );

在第一个例子中,我在fiddler中看到它试图从中检索数据的网址是http://server/application/api/slideid/getdirectories,这是正确的。

在第二个中,它是http://server/api/slideid/getdirectories,这是不对的。我认为json GET的这两种方法是相同的......但似乎它们不是?

有趣的是,这些方法同时适用于我的本地开发盒 - 只有在我的登台服务器上才有效,而另一个则不然。据我所知,IIS设置是完全相同的 - 我很好地检查。

所以我想知道为什么getJSON不起作用,当jQuery docs表明getJSON只是.ajax调用的简写?  

编辑:我已经放入了一个明确版本的getJSON,希望能够证明它们是非常相似的调用,但现在有'真正'的getJSON调用。

2 个答案:

答案 0 :(得分:6)

您的$.getJSON()实施错误,应该是:

$.getJSON(url, {data:data}, function(data){
     alert(data);
});

其中{data:data}是可选的。

来自文档:

  

这是一个简写的Ajax函数,相当于:

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

答案 1 :(得分:0)

  $.getJSON(url, {data:data}, ....

错误的语法