jQuery自动完成asmx问题
我有一个奇怪的问题。我正在尝试将jQuery自动完成与asmx web服务一起使用。我的JavaScript代码如下所示:jQuery自动完成asmx问题,jquery,web-services,autocomplete,Jquery,Web Services,Autocomplete,我有一个奇怪的问题。我正在尝试将jQuery自动完成与asmx web服务一起使用。我的JavaScript代码如下所示: $('#txtUsers').autocomplete('AjaxHandler.asmx/GetUserData', { width: 320, max: 5, minChars: 3, parse: function(data) { var items = data.d; var parsed = [];
$('#txtUsers').autocomplete('AjaxHandler.asmx/GetUserData', {
width: 320,
max: 5,
minChars: 3,
parse: function(data) {
var items = data.d;
var parsed = [];
for (var i = 0; i < items.length; i++)
parsed.push({
data: [items[i]],
value: items[i],
result: [items[i]]
});
return parsed;
}
});
$('#txtexsers').autocomplete('AjaxHandler.asmx/GetUserData'{
宽度:320,
最高:5,
明查斯:3,
解析:函数(数据){
var项目=数据d;
解析的var=[];
对于(变量i=0;i
我的web服务代码是:
[WebService]
[ScriptService]
public class AjaxHandler : WebService
{
[WebMethod]
public List<UserData> GetUserData(string q)
{
//My code here.....
}
}
[WebService]
[脚本服务]
公共类AjaxHandler:WebService
{
[网络方法]
公共列表GetUserData(字符串q)
{
//我的代码在这里。。。。。
}
}
但是,我的web方法没有从autocomplete调用。但是,每当我尝试从jQuery.ajax调用相同的web方法时,它都会被正确地触发。有什么帮助吗?是的,我也同意这个问题。ScriptService和ScriptMethod都不能帮助自动完成。最简单的解决方法是将.asmx转换为.ashx,并在JSON序列化程序的帮助下按照AJAX插件的预期管理返回结果 我检查了自动完成发送获取请求,但您的服务只接受post请求。我看你也找到了。 我建议使用简单的HttpHandler,并使用json返回数据,因为web服务会重新运行“包装”数据。 它应该非常简单:
List<UserData> items = GetUserDataItems();
string json = JsonConvert.SerializeObject(items);
然后像这样解析:
parse: function (data) {
return $.map(data, function (row, i) {
return {
data: row,
value: row,
result: row
}
});
},
我的问题不是json数据。我的问题是web服务方法没有从autocomplete调用,而在autocomplete中,它完全是从$.ajax调用的。您确定aotocomplete没有调用您的方法吗?当自动完成工作时,您是否尝试过调试服务?似乎有问题,因为autocomplete无法分析数据。但它只是暗示这可能是错误的。只要尝试发送json它很简单,我相信它会工作。是的。我在我的服务器端代码中设置了一个断点,它不会被自动完成击中。但是,它正在使用aspx页面。但如果我的aspx为什么不通过asmx?谢谢你的建议。但是,通过在web.config中包含,问题得以解决
parse: function (data) {
return $.map(data, function (row, i) {
return {
data: row,
value: row,
result: row
}
});
},