Как использовать jQuery для вызова веб-службы ASP.NET?

Я пытаюсь использовать jQuery для получения данных из веб-службы ASP.NET (SharePoint Server 2007 lists.asmx), но любой вызов веб-службы действительно поможет в качестве первого шага в этом направлении.

Чем служба ASP.NET будет отличаться от службы, работающей на Tomcat? Другими словами: я не думаю, что вообще имеет значение, какое программное обеспечение работает на сервере.

nilamo 04.08.2010 20:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
64
1
172 367
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Вот пример вызова вашего веб-сервиса с помощью jQuery.get:

$.get("http://domain.com/webservice.asmx", { name: "John", time: "2pm" },
  function(data){
    alert("Data Loaded: " + data);
  });

В приведенном выше примере мы вызываем webservice.asmx, передавая два параметра: имя и время. Затем получение вывода службы в функции обратного вызова.

Я не знаю об этой конкретной веб-службе SharePoint, но вы можете украсить метод страницы или веб-службу с помощью <WebMethod()> (в VB.NET), чтобы гарантировать ее сериализацию в JSON. Вероятно, вы можете просто обернуть метод, который webservice.asmx использует для внутренних целей, в свой собственный веб-сервис.

У Дэйва Уорда есть хорошее прохождение по этому поводу.

Я довольно часто использую ajaxpro вместе с jQuery. ajaxpro позволяет мне вызывать функции .NET из JavaScript, а для остальных я использую jQuery.

У меня есть достойный пример в jQuery AJAX и ASMX использования вызова jQuery AJAX с веб-службами asmx ...

Есть строка кода, которую нужно раскомментировать, чтобы вернуть JSON.

Ссылка 404 не найдена. Рекомендуется всегда включать в ответ основной контент на случай, если владелец сайта внезапно выиграет в лотерею, разводится со своей женой и переезжает на Багамы.

Zuzlx 05.09.2015 23:07
Ответ принят как подходящий

Я использую этот метод как оболочку, чтобы отправлять параметры. Кроме того, использование переменных в верхней части метода позволяет минимизировать его в более высоком соотношении и позволяет повторно использовать некоторый код при выполнении нескольких похожих вызовов.

function InfoByDate(sDate, eDate){
    var divToBeWorkedOn = "#AjaxPlaceHolder";
    var webMethod = "http://MyWebService/Web.asmx/GetInfoByDates";
    var parameters = "{'sDate':'" + sDate + "','eDate':'" + eDate + "'}";

    $.ajax({
        type: "POST",
        url: webMethod,
        data: parameters,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            $(divToBeWorkedOn).html(msg.d);
        },
        error: function(e){
            $(divToBeWorkedOn).html("Unavailable");
        }
    });
}

Надеюсь, это поможет.

Обратите внимание, что для этого требуется, чтобы платформа 3.5 предоставляла веб-методы JSON, которые можно использовать таким образом.

это строка: "var webMethod = 'MyWebService / Web.asmx / GetInfoByDates'" намеренно пропущена точка с запятой?

matthew_360 26.09.2012 03:21

Есть ли способ просмотреть сообщение об ошибке? мой продолжает говорить "недоступен", но мне нужно просмотреть фактическую ошибку, спасибо

KamalSalem 21.12.2012 15:39

если вы используете firebug или консоль в chrome, просто сохраните "e" в переменной, а затем проверьте ее. то есть window.ZZZ = e;

Bobby Borszich 02.01.2013 21:16

@Bobby, я выполнил шаги, упомянутые в вашем ответе, и могу вызвать в веб-службу. Он отлично работает в Chrome, но когда я попробовал то же самое в firefox, я получаю 0 в ответ, у вас есть какие-нибудь идеи? Спасибо

Muhammad Akhtar 08.01.2013 21:03

А как получить параметры на /Web.asmx/GetInfoByDates ??

Anjum 04.03.2015 09:46

Мне было интересно, следует ли нам поместить этот код в HTML и использовать вокруг него тег <script>?

munmunbb 16.03.2017 00:41
$.ajax({
 type: 'POST',
 url: 'data.asmx/getText',
 data: {'argInput' : 'input arg(s)'},
 complete: function(xData, status) {
 $('#txt').html($(xData.responseXML).text()); // result
 }
});

SPServices - это библиотека jQuery, которая абстрагирует веб-службы SharePoint и упрощает их использование.

Это проверенный для SharePoint 2007.

Список поддерживаемых операций для Lists.asmx можно найти здесь

Пример

В этом примере мы захватываем все элементы из списка Announcements и отображаем заголовки в маркированном списке в div tasksUL:

<script type = "text/javascript" src = "filelink/jquery-1.6.1.min.js"></script>
<script type = "text/javascript" src = "filelink/jquery.SPServices-0.6.2.min.js"></script>
<script language = "javascript" type = "text/javascript">

$(document).ready(function() {
  $().SPServices({
    operation: "GetListItems",
    async: false,
    listName: "Announcements",
    CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>",
    completefunc: function (xData, Status) {
      $(xData.responseXML).SPFilterNode("z:row").each(function() {
        var liHtml = "<li>" + $(this).attr("ows_Title") + "</li>";
        $("#tasksUL").append(liHtml);
      });
    }
  });
});
</script>
<ul id = "tasksUL"/>

Другие вопросы по теме