Play 2.1/Scala および JQuery で動作する Ajax リクエストを取得しようとしています。私は従った:http://www.playframework.com/documentation/2.1.x/ScalaJavascriptRouting
私のコントローラーは正しいパラメーターで呼び出されます。しかし Javascript では、成功コールバックとエラー コールバックの両方が実行され、すべてのパラメータは未定義です。
テンプレート:
@(param: String)(implicit req: RequestHeader)
@helper.javascriptRouter("jsRoutes")(
routes.javascript.MyController.myMethod
)
@main("Welcome to Play 2.0") {...}
このテンプレートのどこかにある JavaScript 関数:
function myFunction(param1, param2, param3) {
jsRoutes.controllers.MyController.myMethod(param1, param2, param3).ajax({
success: new function(data, textStatus, jqXHR) {
console.log("ajax success data: " + data);
console.log("ajax success textStatus: " + textStatus);
console.log("ajax success jqXHR: " + jqXHR);
}, error: new function(jqXHR, textStatus, errorThrown) {
console.log("ajax error xhr: " + jqXHR);
console.log("ajax error textStatus: " + textStatus);
console.log("ajax error errorThrown: " + errorThrown);
}
});
コントローラー:
def myMethod(param1:String, param2:String, param3:String) = Action { implicit request =>
Ok(Json.obj({"key" -> "sdfsdfs"}))
}
これをデバッグしたところ、ブラウザーのネットワークで要求と応答が監視されていることがわかります。これは JSON 型で、正しいデータが含まれています。
しかし、これは私のコールバックの出力です:
ajax success data: undefined localhost:9000/:101
ajax success textStatus: undefined localhost:9000/:102
ajax success jqXHR: undefined localhost:9000/:103
ajax error xhr: undefined localhost:9000/:106
ajax error textStatus: undefined localhost:9000/:107
ajax error errorThrown: undefined
わかりませんが、こちらScala JavaScript Routing Play Frameworkも調べましたが、理由が見つかりませんでした。サーバーやブラウザにもエラーは表示されません。
ありがとう。