Как использовать jQuery для вызова ASP.NET веб-сервис?
Я пытаюсь использовать jQuery для получения данных из ASP.NET веб-служба (списки SharePoint Server 2007.asmx), но любой вызов веб-службы действительно поможет в качестве первого шага в этом направлении.
7 ответов:
Я использую этот метод в качестве обертки, так что я могу отправить параметры. Кроме того, использование переменных в верхней части метода позволяет минимизировать его при более высоком соотношении и позволяет повторно использовать код при выполнении нескольких аналогичных вызовов.
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 framework для предоставления JSON webmethods, которые могут быть использованы таким образом.
вот пример вызова вашего веб-сервиса с помощью jQuery.получить:
$.get("http://domain.com/webservice.asmx", { name: "John", time: "2pm" }, function(data){ alert("Data Loaded: " + data); });
В приведенном выше примере, мы называем "веб-службы.asmx", передавая два параметра: имя и время. Затем получение вывода службы в функции обратного вызова.
Я не знаю об этой конкретной веб-службе SharePoint, но вы можете украсить метод страницы или веб-службу с помощью
<WebMethod()>
(in VB.NET) чтобы убедиться, что он сериализуется в JSON. Вероятно, вы можете просто обернуть метод, который webservice.asmx использует внутренне, в вашем собственном веб-сервисе.у Дэйва Уорда есть хорошее прохождение об этом.
$.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
список поддерживаемых операций для списков.asmx-файл может быть найден здесь
пример
в этом примере мы захватываем все элементы в списке объявлений и отображаем заголовки в маркированном списке в tasksUL div:
<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"/>
У меня есть достойный пример jQuery AJAX и ASMX при использовании вызова jQuery AJAX с веб-службами asmx...
существует строка кода для раскомментирования, чтобы она возвращала JSON.