我正在使用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;
}
});
}
为什么我会收到此错误?
答案 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;
}