如何从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(); } }