I am having a strange issue. I am trying to use jQuery autocomplete with asmx web service. My JavaScript code is as:
$('#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;
}
});
and my web service code is:
[WebService]
[ScriptService]
public class AjaxHandler : WebService
{
[WebMethod]
public List<UserData> GetUserData(string q)
{
//My code here.....
}
}
However my web method is not being called from autocomplete. However whenever I try to call the same web method from jQuery.ajax, it gets fired correctly. Any help?
I checked that autocomplete send get request, but you service accept only post requests. So, i see that you also found it.
I suggest to use simple HttpHandler, and return data as json using newton json serializer, because you web service retun ‘wrapped’ data.
It should be very simple handler:
//retrun json to the client
Also at client code set dataType to json:
And parse like this: