JSON и jQuery.ajax

Я пытаюсь использовать автоматическое заполнение UI jQuery для communitate с веб-сервисом с responseformate JSON, но я не могу сделать так.

Мой веб-сервис даже не выполняется, путь должен быть корректным, так как сообщение об ошибке не жалуется на это.

То, что ударяет меня, является заголовками, ответ является мылом, но запрос является 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

Сообщение об ошибке, которое я получаю, следующим образом (извините для огромного сообщения, но это могло бы быть важно):

soap:ReceiverSystem. Сеть. Сервисы. Протоколы. SoapException: Сервер не мог обработать запрос.---> Система. Xml. XmlException: Данные на корневом уровне недопустимы. Строка 1, положение 1. в System. Xml. XmlTextReaderImpl. Бросок (Исключение e) в Системе. Xml. XmlTextReaderImpl. Бросок (Представляют в виде строки res, Строковый аргумент) в System. Xml. XmlTextReaderImpl. ParseRootLevelWhitespace () в Системе. Xml. XmlTextReaderImpl. ParseDocumentContent () в Системе. Xml. XmlTextReaderImpl. Читайте () в Системе. Xml. XmlTextReader. Читайте () в Системе. Сеть. Сервисы. Протоколы. SoapServerProtocol. SoapEnvelopeReader. Читайте () в Системе. Xml. XmlReader. MoveToContent () в Системе. Сеть. Сервисы. Протоколы. SoapServerProtocol. SoapEnvelopeReader. MoveToContent () в Системе. Сеть. Сервисы. Протоколы. SoapServerProtocolHelper. GetRequestElement () в Системе. Сеть. Сервисы. Протоколы. Soap12ServerProtocolHelper. RouteRequest () в Системе. Сеть. Сервисы. Протоколы. SoapServerProtocol. RouteRequest (сообщение SoapServerMessage) в System. Сеть. Сервисы. Протоколы. SoapServerProtocol. Инициализируйте () в Системе. Сеть. Сервисы. Протоколы. ServerProtocolFactory. Создайте (Введите тип, контекст HttpContext, запрос HttpRequest, ответ HttpResponse, Boolean& abortProcessing)---Конец внутреннего отслеживания стека исключительной ситуации---

Это - мой код:

$('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
    }

}

Что я делаю неправильно? Заранее спасибо :)

7
задан Andreas 16 April 2010 в 07:15
поделиться

1 ответ

Я считаю, что вам нужно включить имя метода в свой URL:

/WebService/Member.asmx/GetMembers

При использовании webservice Мне всегда нравится указывать путь к корню (/ no ../), это может быть полезно, если вы выполняете какие-либо перезаписи URL-адресов или используете маршрутизацию.

Вот хороший пост в блоге о вызове веб-сервиса из JQuery. http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/

13
ответ дан 6 December 2019 в 19:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: