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

Javascript $.ajax和$.getJson加载的差异,javascript,ajax,jsonp,Javascript,Ajax,Jsonp,我正在尝试实现一个ajax调用,以从服务器获取一些数据。 早些时候,这些数据被硬编码到JS中。因此,我正在减少页面负载并从服务器获取数据。我得到的数据在页面的许多地方都有使用 现在我使用了$.ajax和$.getJson $.getJSON(reqUrl) .done(function(data){ searchvars = data; }) $.ajax({ url: reqUrl, type: 'GET' }) .done(function(data){ s

我正在尝试实现一个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
不能。你有没有更好的方法来解决这个问题


谢谢

$。getJSON等同于以下内容:

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

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

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

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

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

在给出有意义的答案之前,你必须发布更多的代码和信息,说明找不到哪个变量……我们需要看一些代码来回答这个问题,因为您做错了:
$.getJson
只是调用
$.ajax
的一种方便方法,在加载JSON.Oops时有一些常见的特定默认值。编辑了这个问题。我在这里输入错误。然后还必须指定dataType='JSON'。您必须将数据类型设置为希望从服务器接收json。在$.ajax请求中,您需要指定数据类型:“json”。