restful - ¿Cómo usar jQuery para llamar a un servicio web ASP.NET?
jquery consume rest service example (7)
A menudo uso ajaxpro junto con jQuery. ajaxpro me permite llamar a funciones .NET desde JavaScript y uso jQuery para el resto.
Estoy tratando de usar jQuery para obtener datos de un servicio web ASP.NET (SharePoint Server 2007 lists.asmx), pero cualquier llamada a un servicio web realmente ayudará como un primer paso en esa dirección.
Aquí hay un ejemplo para llamar a su servicio web usando jQuery.get:
$.get("http://domain.com/webservice.asmx", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
En el ejemplo anterior, llamamos "webservice.asmx", pasando dos parámetros: nombre y hora. Luego, obteniendo el resultado del servicio en la función de devolución de llamada.
No sé acerca de ese servicio web específico de SharePoint, pero puede decorar un método de página o un servicio web con <WebMethod()>
(en VB.NET) para asegurarse de que se serialice a JSON. Probablemente pueda simplemente ajustar el método que webservice.asmx usa internamente, en su propio servicio web.
Dave Ward tiene un buen recorrido en esto.
Tengo un buen ejemplo en jQuery AJAX y ASMX sobre el uso de la llamada jQuery AJAX con los servicios web de asmx ...
Hay una línea de código para desactualizar para que devuelva JSON.
Utilizo este método como un contenedor para poder enviar parámetros. Además, el uso de las variables en la parte superior del método permite que se minimice en una proporción mayor y permite la reutilización de algunos códigos si se realizan múltiples llamadas similares.
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");
}
});
}
Espero que eso ayude.
Tenga en cuenta que esto requiere el marco 3.5 para exponer los métodos web JSON que se pueden consumir de esta manera.
SPServices es una biblioteca jQuery que abstrae los servicios web de SharePoint y los hace más fáciles de usar
Está certified para SharePoint 2007
La lista de operaciones compatibles para Lists.asmx se puede encontrar here
Ejemplo
En este ejemplo, estamos tomando todos los elementos en la lista de Anuncios y mostrando los Títulos en una lista con viñetas en la div en 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"/>
$.ajax({
type: ''POST'',
url: ''data.asmx/getText'',
data: {''argInput'' : ''input arg(s)''},
complete: function(xData, status) {
$(''#txt'').html($(xData.responseXML).text()); // result
}
});