我有这段代码:
$('#' + textboxID).autocomplete({ delay: delay, source: ["cats", "dogs"] });
工作正常。
我想使用网络服务:
$('#' + textboxID).autocomplete({ delay: delay, source: webserviceURL});
这不起作用。我的网络服务URL是/blah/blah.asmx/myMethod
网络服务定义是:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<string> myMethod(string term)
{
// Logic here, return list of strings
}
永远不会调用该方法。谁能指出我正确的方向?我在同一个.asmx中有其他web服务,可以与其他控件一起使用(其他控件使用$ .ajax来调用它们)。
编辑:越来越近了,我现在得到一个500错误,表示对于意外以“/ myMethod”结尾的URL无法识别请求格式。
我认为这不是我的网址正确对待......
答案 0 :(得分:1)
这是一个SO线程,其解决方案是将其与Asp.net webservice一起使用:
jQuery AutoComplete (jQuery UI 1.8rc3) with ASP.NET web service
答案 1 :(得分:0)
解决了它,关键在于这个问题:
How do I set JQuery Autocomplete to POST instead of GET?
我将$.ajaxSetup( { type: "post" } );
放在我的.autocomplete行之前,它解决了它。最烦人的是他们没有把它作为一种选择!