I'm attempting to make ajax calls using jsRoutes in play framework. It works fine for requests that does not take any parameters, but when I try to call a controller method which takes a Long as a param, it fails with no error message. Here's some code to explain it better.
Controller class Users.java:
public static Result addToShortList(long id) {
return whatever
}
conf/routes
POST /shortList/:userId controllers.Users.addToShortList(userId: Long)
In Application.java controller file i return the jsRoutes like this:
public static Result javascriptRoutes() {
response().setContentType("text/javascript");
return ok(Routes.javascriptRouter("jsRoutes",
controllers.routes.javascript.Application.frontpage(),
...
controllers.routes.javascript.Users.addToShortList(),
controllers.routes.javascript.Users.removeFromShortList()));
}
Now in my javascript I can use the jsRoutes by doing the following:
jsRoutes.controllers.Users.addToShortList(id).ajax({
success : function(data) {
alert(data);
},
error : function(err) {
//code always ends up here, with the err giving no eerror message at all!
alert(err);
}
});
It seems that the this functionality of the play framework is poorly documented, or maybe I'm just blind not to find it anywhere...
Thanks for any help!
Ok, figured the problem out myself. The problem seemed to be that I used long(primitive) in the controller method. Why this is a problem I do not know.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With