2012-09-17 9 views
8

playフレームワークでjsRoutesを使用してajax呼び出しを試みています。パラメータを取らない要求に対してはうまく動作しますが、Longをパラメータとして受け取るコントローラメソッドを呼び出そうとすると、エラーメッセージなしで失敗します。それをよりよく説明するためのコードがあります。Play Framework 2でjavascriptルートを使用する

ControllerクラスUsers.java:Application.javaコントローラファイルで

public static Result addToShortList(long id) { 
return whatever 
} 

のconf /ルート

POST /shortList/:userId controllers.Users.addToShortList(userId: Long) 

私はこのようなjsRoutesを返す:

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

今私の中javascript次のようにjsRoutesを使用できます:

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

...プレイフレームワークのこの機能が不十分な文書化されている、または多分私はそれをどこでも見つけることだけではなく、盲目だという任意の助け

おかげです!

答えて

5

[OK]を、自分自身の問題を考え出した。この問題は、コントローラメソッドで長い(プリミティブな)ものを使用していたようです。なぜこれは私が知らない問題です。

+0

これは私が自分自身にぶつかったPlayの問題です:https://play.lighthouseapp.com/projects/82401-play-20/tickets/756 – InPursuit

関連する問題