Json使用cxf在另一个域上发布

时间:2014-03-19 09:27:14

标签: java jquery spring cxf

我正在使用cxf web-service,我需要使用ajax调用从另一个域访问数据..

我的服务方法看起来像

 @POST
    @Path("/addService")
    @Produces("application/json")
    @Consumes("application/json")
    public Response addService(com.cyn.slon.model.dto.Service service) {
        log.debug("___          inside addService              ___");

       //business method call....

        return null;
    }

我正在使用来自其他域的简单ajax调用...

function test() {
     var jsonForServ = new Object();
     jsonForServ.name = "name1";
     jsonForServ.description = "descripnnnnn";
     jsonForServ.price = 20;
     alert(JSON.stringify(jsonForServ));
         $.ajax({
                url: "/Slon/services/bookservice/addService", 
                type: 'POST', 
                dataType: 'application/json;', 
                contentType: "application/json;",
                data: JSON.stringify(jsonForServ), processData:false,
                success: function(data) { 
                    alert('Success');
                },
                error:function(data,status,er) { 
                    alert("error: "+data+" status: "+status+" er:"+er);
                }
        }); 
 }   

我使用jaxson来解析json .. 但它没有访问服务方法..

1 个答案:

答案 0 :(得分:0)

spring框架不支持简单的ajax调用来调用Web服务方法。

我们可以使用覆盖弹簧安全性的jsonp。

但是jsonp只支持发帖请求。

因此不太方便。

另一种选择是使用过滤器来避免这种情况。

https://spring.io/guides/gs/rest-service-cors/