Как передать параметр в веб-сервис asp.net и вернуть xml? - PullRequest
0 голосов
/ 20 апреля 2011

В настоящее время у меня есть кнопка, которая с помощью jQuery / AJAX выполняет поиск всех клиентов из списка SharePoint, и моя веб-служба возвращает строку XML. Затем я заполняю раскрывающийся список данными из XML.

Я знаю, что хотел передать параметр (имя клиента) для функции поиска, и я могу вернуть то, что я хочу, из списка SharePoint, но мой вызов AJAX возвращает ошибку (parseerror).

Чтобы получить всех клиентов (который работает):

$.ajax({
    type: "GET",
    url: "SynchroniseCustomers.asmx/GetAllCustomers",
    dataType: "text/xml",

error: function (xhr, status) {
    hideLoading();
},
beforeSend: function () {
    showLoading("customers");
},
success: function (xml) {
    hideLoading();
    populatecustomerDropdownList($(xml).text());
}

});

Я не уверен, как это сделать, но я пытался

var customer = CustomerName;

$.ajax({
    type: "GET",
    data: { CustomerName: JSON.stringify(customer) },
    url: "SynchroniseCustomers.asmx/GetCustomerByName",
    dataType: "json",

error: function (xhr, status) {
    hideLoading();
    alert(xhr + " " + status);
},
beforeSend: function () {
    showLoading("Customers");
},
success: function (xml) {
    hideLoading();
    populateCustomerDropdownList($(xml).text());
}
});

Может кто-нибудь указать мне правильное направление, как это сделать?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 20 апреля 2011

Я не знаю о возврате данных XML из веб-сервисов, но могу помочь вам с битом отправки.

Если переменная customer является простой строкой, используйте

data: { "CustomerName": customer },

Если переменная customer имеет сложный тип, используйте

data: { "CustomerName": JSON.stringify(customer) },

Для получения дополнительной информации о передаче сложных типов, прочитайте эту статью Дэйва Уорда .

0 голосов
/ 20 апреля 2011

Если вы указали тип возвращаемых данных как JSON, это должен быть XML:

dataType: "xml"

Также это выглядит неправильно:

populatecustomerDropdownList($(xml).text());

Когда вы делаете $(xml), вы получаете доступ к своей структурекак HTML, например, если структура имеет вид:

<?xml version="1.0" encoding="utf-8" ?>
<RecentTutorials>
  <Tutorial author="The Reddest">
    <Title>Silverlight and the Netflix API</Title>
    <Categories>
      <Category>Tutorials</Category>
      <Category>Silverlight 2.0</Category>
      <Category>Silverlight</Category>
      <Category>C#</Category>
      <Category>XAML</Category>
    </Categories>
    <Date>1/13/2009</Date>
  </Tutorial>

jQuery:

  success: function(xml) {
     $(xml).find("Tutorial").each(function()
     {
        $("#output").append($(this).attr("author") + "<br />");
     });
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...