加载$ .ajax和$ .getJson的差异

时间:2014-11-28 09:06:20

标签: javascript ajax jsonp

我正在尝试实现ajax调用以从服务器获取一些数据。 早些时候,这些数据被硬编码到JS中。所以我减少了页面加载并从服务器获取数据。我得到的数据用于页面上的许多地方。

现在我同时使用$.ajax$.getJson

$.getJSON(reqUrl)
.done(function(data){
    searchvars = data;
})

$.ajax({
    url: reqUrl,
    type: 'GET'
})
.done(function(data){
    searchvars = data;
})

如果$.getJson,一切正常。 但是在$.ajax的情况下,它会给出"未找到变量"的错误。这意味着$.ajax请求在获取数据并分配给"变量"时迟到了。

我的问题是为什么$.getJson完美无缺,$.ajax没有。你有没有更好的方法解决这个问题?

谢谢!

2 个答案:

答案 0 :(得分:1)

试试这个。在您的$ .ajax中,您设置了dataType ='GET',这是错误的。

$.getJSON(reqUrl)
.done(function(data){
    searchvars = data;
})

$.ajax({
    url: reqUrl,
    type: 'GET',
    dataType: 'json'   
})
.done(function(data){
    searchvars = data;
})

答案 1 :(得分:0)

$ .getJSON等同于以下内容:

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

如果提供了所有正确的参数,则$ .ajax的行为与$ .getJSON的行为不同。确保在使用$ .ajax时没有犯任何其他错误。