【发布时间】:2014-10-21 18:41:40
【问题描述】:
这是我的 jquery ajax 调用的成功部分:
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
console.log(data);
response($.map(data.d, function (item) {
return {
label: item.ItemName,
val: item.ItemId
}
}))
},
这是data,我从服务器获得了这个成功块:
[{"ItemId":1095,"ItemName":"Double Axe"},{"ItemId":1096,"ItemName":"Helm"},{"ItemId":1097,"ItemName":"Armor"},{"ItemId":1098,"ItemName":"Gloves"},{"ItemId":1099,"ItemName":"Boots"}]
我得到的错误是:
Uncaught TypeError: Cannot read property 'length' of undefined
问题是response($.map(data.d, function (item) { 永远不会被执行。
我应该怎么做才能完成这项工作?
【问题讨论】:
-
如果
data是你上面给出的JSON,那么就没有data.d吧? -
是的。 Data.d 什么都不是
-
那是你的问题,不是吗?不应该只是
$.map(data, function... -
@1110 那你为什么要迭代 nothing 并期望发生一些事情..?
-
@PatrickQ 但如果我在里面传递
data我会得到错误:Uncaught TypeError: Cannot use 'in' operator to search for '180' in [{"ItemId":1095,"ItemName":"Double Axe"},{"ItemId":1095,"ItemName":"Helm"},{"ItemId":1095,"ItemName":"Armor"},{"ItemId":1095,"ItemName":"Gloves"},{"ItemId":1095,"ItemName":"Boots"}]
标签: javascript jquery json jquery-ui jquery-autocomplete