我有一个位于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调用。
答案 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}, ....
错误的语法