2009-05-14 9 views
28

Je souhaite appeler un service Web à partir de jQuery. Comment puis je faire ça?Comment appeler un service Web à partir de jQuery

+2

Je suggère la fermeture de la question, si Ceci est répondu suffisamment bien dans le lien que j'ai posté ci-dessous – shahkalpesh

+0

Il est en quelque sorte lié à la question Stack Overflow * [Comment utiliser jQuery pour appeler un service 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

Répondre

29

Vous pouvez faire une requête AJAX comme toute autre demande:

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

}) 
+4

S'il vous plaît corriger l'orthographe du gestionnaire onSuccess ... de succès à succès – jcolebrand

+0

que bon, mais que diriez-vous lorsque vous avez besoin de traverser le domaine – kta

+0

@kta, alors vous aurez besoin de jsonp –

7

EDIT:

L'OP ne cherchait pas à utiliser les requêtes inter-domaines, mais jQuery soutient JSONP au v1.5. Voir jQuery.ajax(), spécifiquement le paramètre crossDomain. Les requêtes régulières Ajax de jQuery ne fonctionneront pas entre les sites, donc si vous souhaitez interroger un service Web RESTful distant, vous devrez probablement créer un proxy sur votre serveur et interroger celui-ci avec une requête get jQuery. Voir this site pour un exemple.

S'il s'agit d'un service Web SOAP, vous pouvez essayer le jqSOAPClient plugin.

3

Incase a un problème comme moi en suivant la réponse de Marwan Aouida ... le code a une petite faute de frappe. Au lieu de "succès", il dit "succès" changer l'orthographe et le code fonctionne bien.

1

En Java, cette valeur de retour échoue avec jQuery Ajax GET:

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

mais cela fonctionne:

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

---- 

classe complète:

@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(); 
    } 
} 
Questions connexes