如何从jQuery调用Web服务

我想从jQuery调用一个web服务。 我怎样才能做到这一点?

您可以像其他任何请求一样进行AJAX请求:

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

编辑:

OP不想使用跨域请求,但jQuery从v1.5开始支持JSONP。 请参阅jQuery.ajax() ,具体说明crossDomain参数。

常规的jQuery Ajax请求不能跨站点工作,所以如果你想查询一个远程的RESTful Web服务,你可能需要在你的服务器上创build一个代理,并用jQuery get请求来查询。 看到这个网站的例子。

如果它是一个SOAP Web服务,您可能想要尝试jqSOAPClient插件 。

我博客如何使用jQuery使用WCF服务:

http://yoavniran.wordpress.com/2009/08/02/creating-a-webservice-proxy-with-jquery/

该post展示了如何直接在javascript中创build服务代理。

在Marwan Aouida的回答中,Incase人有我自己的问题…代码有一个小的错字。 它说“成功”,而不是“成功”改变拼写和代码工作正常。

在Java中,这个返回值与jQuery Ajax GET失败:

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

但是这个工作:

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

全class:

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