JavaScript ルートを介して AngularJS インターフェイスから Application.java コントローラーにデータをポストしようとしています。
app/controllers/Application.java に javascriptRoutes() を作成しました。
public static Result javascriptRoutes() {
response().setContentType("text/javascript");
return ok(
Routes.javascriptRouter("jsRoutes",
controllers.routes.javascript.Application.duplicateSheet()
)
);
}
アセット/パブリック ルートの前に来るようにルートを設定しました。
POST /sheet/duplicate/ controllers.Application.duplicateSheet()
GET /assets/javascripts/routes controllers.Application.javascriptRoutes()
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.at(path="/public", file)
そして、JS コントローラーで duplicateSheet() 関数を呼び出そうとしています:
jsRoutes.controllers.Application.duplicateSheet().ajax({
data: {
newSheet: newSheet,
includeData: includeData
}
});
duplicateSheet() を実行しようとすると、コンソールに次のエラーが表示されます。
POST http://localhost:9000/sheet/duplicate/ 500 (Internal Server Error)
これは、jsRoutes は機能するが、'/sheet/duplicate/' ルートが存在しないことを示していますか? ルートについて他に見逃しているものはありますか?