2009-05-14 25 views
28

Deseo llamar a un servicio web desde jQuery. ¿Cómo puedo hacer eso?Cómo llamar a un servicio web desde jQuery

+2

Sugiero cerrar la pregunta, si esto se responde suficientemente bien en el enlace que publiqué a continuación – shahkalpesh

+0

Está relacionado de alguna manera con la pregunta de desbordamiento de pila * [Cómo ¿usas jQuery para llamar a un servicio web ASP.NET?] (http://stackoverflow.com/questions/230401/how-to-use-jquery-to-call-an-asp-net-web-service/230605) * . – shahkalpesh

+0

http://docs.jquery.com/Ajax – Gromer

Respuesta

29

Usted puede hacer una petición AJAX como cualquier otra solicitud:

$.ajax({ 
type:'Get', 
url:'http://mysite.com/mywebservice', 
success:function(data) { 
alert(data); 
} 

}) 
+4

Corrija la ortografía del controlador onSuccess ... del éxito al éxito – jcolebrand

+0

que bien, pero qué pasa cuando necesita dominio cruzado – kta

+0

@kta, entonces necesitará jsonp –

7

EDIT:

El PO no estaba mirando a usar las solicitudes de varios dominios, pero jQuery soporta JSONP partir de v1.5. Consulte jQuery.ajax(), específicamente el parámetro crossDomain.

Las solicitudes regulares de jQuery Ajax no funcionarán en sitios cruzados, por lo que si desea consultar un servicio web RESTful remoto, probablemente deba realizar un proxy en su servidor y consultarlo con una solicitud jQuery get. Ver this site para un ejemplo.

Si se trata de un servicio web SOAP, es posible que desee probar el jqSOAPClient plugin.

3

En caso de que la gente tenga un problema como yo después de la respuesta de Marwan Aouida ... el código tiene un pequeño error tipográfico. En lugar de "éxito", dice "éxito" cambiar la ortografía y el código funciona bien.

1

En Java, este valor de retorno falla con jQuery Ajax GET:

return Response.status(200).entity(pojoObj).build(); 

Pero esto funciona:

ResponseBuilder rb = Response.status(200).entity(pojoObj); 
return rb.header("Access-Control-Allow-Origin", "*").build(); 

---- 

clase completa:

@Path("/password") 
public class PasswordStorage { 
    @GET 
    @Produces({ MediaType.APPLICATION_JSON }) 
    public Response getRole() { 
     Contact pojoObj= new Contact(); 
     pojoObj.setRole("manager"); 

     ResponseBuilder rb = Response.status(200).entity(pojoObj); 
     return rb.header("Access-Control-Allow-Origin", "*").build(); 

     //Fails jQuery: return Response.status(200).entity(pojoObj).build(); 
    } 
} 
Cuestiones relacionadas