Ajax数据 – 未捕获的ReferenceError:未定义日期
我正在使用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; } }); }
为什么我会收到此错误?
你有一个错字
date.state
它应该是:
data.state
顺便说一下,不建议使用
async: false
因为所有的JavaScript都在等待ajax请求有响应。 它会减慢你的应用程序,绝对不是一个好用的做法。
这是一个错字( date
=> data
):
success: function(data) { twostate = date.state; return twostate; }
应该:
success: function(data) { twostate = data.state; return twostate; }
错字
twostate =
date .state
;
应该是twostate =
data .state
;
我想你可能会在成功处理程序中遗漏一些东西。 通常,我希望看到类似的东西:
success: function(data) { var twostate = data.date.state; return twostate; }
但这是一个危险的假设,数据以“日期”字段返回。
在我看来,更好的是:
success: function(data) { var twostate = (data.date ? data.date.state : ""); return twostate; }
这样你就可以在尝试从null对象中提取某些东西之前测试data.date的存在。
如果状态只是从数据返回的字段,那么您可能会遇到一个简单的拼写错误,您需要将“date.state”更改为“data.state”。 在任何情况下,你应该在返回它之前改变你的“twostate”变量,或者只是去除它并像这样发回“data.state”:
success: function(data) { return data.state; }