【问题标题】:Difference between ajax and getJSON calls?ajax 和 getJSON 调用的区别?
【发布时间】: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


【解决方案1】:

你有一个错误的$.getJSON() 实现应该是:

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

{data:data} 是可选的。

来自文档:

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

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

【讨论】:

  • 我的错-请查看更新后的问题-语法正确,但问题仍然存在。
【解决方案2】:
  $.getJSON(url, {data:data}, ....

语法错误

【讨论】:

猜你喜欢
  • 2010-11-07
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
  • 2013-06-01
  • 2015-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多