我正在尝试使用 jQuery UI 自动完成功能与带有 responseformate JSON 的 web 服务进行通信,但我无法这样做。
我的网络服务甚至没有执行,路径应该是正确的,因为错误消息没有抱怨这一点。
让我印象深刻的是标题,响应是肥皂,但请求是 json,它应该是这样的吗?
Response Headersvisa källkod
Content-Type application/soap+xml; charset=utf-8
Request Headersvisa källkod
Accept application/json, text/javascript, */*
Content-Type application/json; charset=utf-8
我收到的错误消息如下(很抱歉消息很大,但它可能很重要):
肥皂:ReceiverSystem.Web.Services.Protocols.SoapException:服务器无法处理请求。---> System.Xml.XmlException:根级别的数据无效。第 1 行,位置 1。位于 System.Xml.XmlTextReaderImpl.Throw(String res, String arg) 处 System.Xml.XmlTextReaderImpl.Throw(Exception e) 处 System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace() 处 System.Xml.XmlTextReaderImpl。 ParseDocumentContent() 在 System.Xml.XmlTextReaderImpl.Read() 在 System.Xml.XmlTextReader.Read() 在 System.Web.Services.Protocols.SoapServerProtocol.SoapEnvelopeReader.Read() 在 System.Xml.XmlReader.MoveToContent() 在System.Web.Services.Protocols.SoapServerProtocolHelper.GetRequestElement() 处 System.Web.Services.Protocols 处的 System.Web.Services.Protocols.SoapServerProtocol.SoapEnvelopeReader.MoveToContent()。
这是我的代码:
$('selector').autocomplete({
source: function(request, response) {
$.ajax({
url: "../WebService/Member.asmx",
dataType: "json",
contentType: "application/json; charset=utf-8",
type: "POST",
data: JSON.stringify({prefixText: request.term}),
success: function(data) {
alert('success');
},
error: function(XMLHttpRequest, textStatus, errorThrown){
alert('error');
}
})
},
minLength: 1,
select: function(event, ui) {
}
});
我的网络服务看起来像这样:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[ScriptService]
public class Member : WebService
{
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string[] GetMembers(string prefixText)
{
code code code
}
}
我究竟做错了什么?提前致谢 :)