【发布时间】:2013-03-20 18:45:45
【问题描述】:
我有一个从位于 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 中看到它尝试从中检索数据的 url 是 http://server/application/api/slideid/getdirectories,这是正确的。
第二个是http://server/api/slideid/getdirectories,不对。我在想这两种json GET方法是一样的……但好像不是?
有趣的是,这两种方法都适用于我的本地开发盒——它只在我的登台服务器上有效,而另一种无效。据我所知,IIS 设置是相同的,而且我进行了很好的检查。
所以我想知道为什么 getJSON 不起作用,当 jQuery docs 状态 getJSON 只是 .ajax 调用的简写?
编辑:我已经输入了一个明确的 getJSON 版本,希望表明它们是非常相似的调用,但现在有了“真正的”getJSON 调用。
【问题讨论】:
-
从地址栏进入api/slideid/getdirectories/,看看你得到了什么。
-
第一个停靠点应该始终是文档,而不是 Stack Overflow。有关
getJSON()调用的正确构造,请参阅 api.jquery.com/jQuery.getJSON。 -
我知道 api/slideid/getdirectories 不起作用(正如我所说),我将文档链接到 getJSON。我假设(可能不正确) getJSON("api/slideid/getdirectories", function (data) {}) 等同于我写的 - 可能是错误的
标签: javascript json jquery