我正在尝试使用ASMX Web服务来获取JQueryUI的自动完成代码。我正在接近,但昨天再次撞墙。 JSON数据以{d:“data”}格式返回(请参阅http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx)。我的数据现在看起来像:JSON返回的数据是{d:“data”}格式
d: "[{"DOTNumber":"001061010","JobTitle":"Project Architect"},{"DOTNumber":"003061005","JobTitle":"Principal Electrical Engineer"}]"
我的代码是:
$(function() {
function log(message) {
$("<div/").text(message).prependTo("#log");
$("#log").attr("scrollTop", 0);
}
});
$("#dotmatch").autocomplete({
source: function(request, response) {
$.ajax({
type: "POST",
url: "/AutoSuggestJSTest/AutoSuggest.asmx/DOTFind",
contentType: 'application/json',
dataType: "json",
data: JSON.stringify({ prefixText: request.term, count: 20 }),
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
},
success: function(data) {
var safe = data;
response($.map(safe.d, function(item) {
return {
label: item.JobTitle + "(" + item.DOTNumber + ")",
value: item.DOTNumber
}
}));
}
});
},
minLength: 2,
select: function(event, ui) {
log(ui.item ?
"Selected: " + ui.item.value + " aka " + ui.item.id :
"Nothing selected, input was " + this.value);
$get("DOTNumber").value = ui.item.value;
},
});
问题在于成功的功能。
通过“d”问题的正确语法是什么?
您确定您使用的是正确的自动填充吗?从我看的版本来看,ajax是在自动完成功能中处理的。用法:自动完成(网址或数据,[选项])http://docs.jquery.com/Plugins/Autocomplete/autocomplete#url_or_dataoptions – wajiw 2010-11-30 17:06:37
我已经看到了几十篇关于这个问题的文章,并且代码确实有效,但是JSON数据是正如我所描述的那样包裹。请参阅haacked.com的链接。 – 2010-11-30 17:15:49