我的JavaScript路由出现404错误

时间:2013-01-23 09:23:47

标签: javascript playframework-2.0

我正在使用Play! v2和我在我的页面上添加了一个JavaScript方法,试图从服务器中检索数据。客户端发送2个信息,deal和布尔值(withDebug)。

我的routes文件:

GET     /:deal/tailLog              controllers.MyController.tailLog(deal: String, withDebug: Boolean)

我也试过了,没有成功:

GET     /:deal/tailLog?withDebug=:withDebug   controllers.MyController.tailLog(deal: String, withDebug: Boolean)

MyController类包含以下方法:

public static Result tailLog(String deal, Boolean withDebug) {
    ...
}

public static Result javascriptRoutes() {
    response().setContentType("text/javascript");
    return ok(Routes.javascriptRouter("jsRoutes",
            ...,
            controllers.routes.javascript.MyController.tailLog()
    ));
}

最后,JavaScript调用是:

function tailLog() {
    var withDebug = $("#logs-debug").is(':checked');
    jsRoutes.controllers.MyController.tailLog('mydeal', withDebug).ajax({
        ...
    });
}

调用此方法时,我的应用程序正在调用URL http://localhost:9000/mydeal/tailLog?withDebug=false,这是我想要的URL模式,但失败并显示404错误消息。

请注意,在我添加withDebug参数之前,一切正常。

我做错了什么?

感谢。

1 个答案:

答案 0 :(得分:2)

Play 2.0.4中,您必须使用 0/1 来绑定布尔参数(而不是false / true)

您的javascript中的一点点更新应该可以解决此错误:

var withDebug = $("#logs-debug").is(':checked') ? 1 : 0;