2009-05-14 20 views
28

Desidero chiamare un servizio Web da jQuery. Come lo posso fare?Come chiamare un servizio Web da jQuery

+2

Suggerisco di chiudere la questione, se questa risposta è sufficientemente soddisfacente nel link che ho postato sotto – shahkalpesh

+0

È in qualche modo correlata alla domanda Stack Overflow * [Come utilizzare jQuery per chiamare un servizio 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

risposta

29

di poter effettuare una richiesta AJAX, come tutte le altre richieste:

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

}) 
+4

Si prega di correggere l'ortografia del gestore onSuccess ... dal successo al successo – jcolebrand

+0

così buono ma che ne dici di quando hai bisogno del dominio incrociato – kta

+0

@kta, allora avrai bisogno di jsonp –

7

EDIT:

Il PO non stava cercando di utilizzare le richieste cross-domain, ma jQuery supporta JSONP come di v1.5. Vedere jQuery.ajax(), in particolare il parametro crossDomain.

I regolari richieste di jQuery Ajax non funzionerà cross-site, quindi se si vuole interrogare un servizio Web remoto RESTful, probabilmente dovrete fare un proxy sul server e query che con una richiesta di ottenere jQuery. Vedi this site per un esempio.

Se si tratta di un servizio Web SOAP, è possibile provare lo jqSOAPClient plugin.

3

Nel caso in cui le persone abbiano un problema come me seguendo la risposta di Marwan Aouida ... il codice ha un piccolo refuso. Invece di "successo", dice "sucess" cambia l'ortografia e il codice funziona correttamente.

1

In Java, questo valore di ritorno non riesce con jQuery Ajax GET:

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

Ma questo funziona:

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

---- 

classe 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(); 
    } 
} 
Problemi correlati