Ajax数据 - 未捕获的ReferenceError:未定义日期

时间:2012-10-16 15:09:33

标签: javascript jquery ajax

我正在使用Ziptastic,但我收到此错误:

  

未捕获的ReferenceError:未定义日期

statezip = statezip();
alert(statezip);

function statezip() {
    var twostate;
    $.ajax({
        url: "http://zip.elevenbasetwo.com/v2/US/10010",
        dataType: 'json',
        async: false,
        data: {},
        success: function (data) {
            twostate = date.state;
            return twostate;
        }
    });
}

为什么我会收到此错误?

4 个答案:

答案 0 :(得分:2)

这是一个错字(date => data):

  success: function(data) { 
      twostate = date.state;
      return twostate;
  }

应该是:

  success: function(data) { 
      twostate = data.state;
      return twostate;
  }

答案 1 :(得分:2)

错字

twostate = 日期 .state;

应为twostate = 数据 .state;

答案 2 :(得分:2)

你有一个错字

date.state

应该是:

data.state

顺便说一下,不建议使用

async: false

因为所有JavaScript都在等待ajax请求获得响应。它会降低你的应用程序速度,使用它肯定不是一个好习惯。

答案 3 :(得分:1)

我认为你可能在成功处理程序中遗漏了一些东西。通常,我希望看到类似的东西:

success: function(data) {
    var twostate = data.date.state;
    return twostate;
}

但这是一个危险的假设,数据回来了" date"字段。

在我看来,更好的是:

success: function(data) {
    var twostate = (data.date ? data.date.state : "");
    return twostate;
}

这样你就可以在尝试从空对象中提取内容之前测试data.date的存在。

我也觉得你可能有一个简单的拼写错误,你需要改变" date.state"到" data.state"如果state只是从数据返回的字段。无论如何,你应该改变你的" twostate"返回之前的变量,或者只是去除它并发回" data.state"像这样:

success: function(data) {
    return data.state;
}