Reputation: 3558
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!
Upvotes: 8
Views: 4380
Reputation: 3558
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.
Upvotes: 5