如何从jQuery调用Web服务

时间:2009-05-14 06:09:12

标签: jquery web-services

我想从jQuery调用web服务。我怎么能这样做?

5 个答案:

答案 0 :(得分:29)

您可以像任何其他请求一样发出AJAX请求:

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

})

答案 1 :(得分:7)

编辑:

OP并不希望使用跨域请求,但jQuery支持从v1.5开始的JSONP。请参阅jQuery.ajax(),特别是crossDomain参数。

常规jQuery Ajax请求不能跨站点工作,因此如果要查询远程RESTful Web服务,您可能必须在服务器上创建代理并使用jQuery get请求查询。有关示例,请参阅this site

如果是SOAP Web服务,您可以尝试jqSOAPClient plugin

答案 2 :(得分:3)

我在博客中介绍了如何使用jQuery来使用WCF服务:

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

该帖子展示了如何在javascript中直接创建服务代理。

答案 3 :(得分:3)

根据Marwan Aouida的回答,人们有像我这样的问题...代码有一个小错字。而不是“成功”,它说“成功”改变拼写,代码工作正常。

答案 4 :(得分:1)

在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();

----

全班:

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