2010-06-15 4 views
0

en essayant de POST (cross domain) certaines données à un service web jersey et récupérer une réponse (un objet GenericEntity). Le poste se mappé avec succès à mon point final de maillot mais quand je tire les paramètres de la demande, ils sont vides ..passer des paramètres de demande de jQuery au service jersey en utilisant json

$ .ajax({ 
    type: "POST", 
    dataType: "application/json; charset=utf-8", 
    url: jerseyNewUserUrl+'?jsoncallback=?', 
    data:{'id':id, 'firstname':firstname,'lastname':lastname}, 
    success: function(data, textStatus) { 
    $('#jsonResult').html("some data: " + data.responseMsg); 
      }, 
    error: function (XMLHttpRequest, textStatus, errorThrown){ 
    alert('error'); 
    } 
    }); 

c'est mon point de terminaison jersey ..

@POST 
    @Produces({ "application/x-javascript", MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) 
    @Path("/new") 
    public JSONWithPadding addNewUser(@QueryParam("jsoncallback") 
    @DefaultValue("empty") 
    final String argJsonCallback, @QueryParam("id") 
    final String argID, @QueryParam("firstname") 
    final String argFirstName, @QueryParam("lastname") 
    final String argLastName) 

est là quelque chose qui manque à mon $ .ajax appel?

Répondre

1

Essayez ceci:

$ .ajax({ 
    type: "POST", 
    dataType: "jsonp", 
    jsonp: "fooCallBackFunction", 
    url: jerseyNewUserUrl, 
    data:{'id':id, 'firstname':firstname,'lastname':lastname}, 
    success: function(data, textStatus) { 
    $('#jsonResult').html("some data: " + data.responseMsg); 
      }, 
    error: function (XMLHttpRequest, textStatus, errorThrown){ 
    alert('error'); 
    } 
    }); 
+0

pas, retourner encore params vide dans mon point final, je suis l'objet la mise en place JSON correctement? Je ne peux pas voir quoi que ce soit d'autre – cduggan

+0

@ccduga, je suis désolé. Pour être honnête, je n'ai jamais utilisé Jersey, et il me semble que votre code jQuery est correct. J'espérais pouvoir conquérir celui-ci du front-end. Encore une chose à essayer. Essayez ma dernière mise à jour à la réponse. – orokusaki

1

vous ne pouvez pas utiliser @QueryParam pour obtenir les valeurs. U peut utiliser un objet pour récupérer les valeurs. Comme si

@POST 
@Produces({ "application/x-javascript", MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML}) 
@Path("/new") 
public void addNewUser(User user){ 
    //NB User has to have the following field names id', firstname,lastname 
} 
Questions connexes