Play Framework 2.x:对控制器的Ajax请求,无需刷新页面

时间:2014-08-19 06:31:32

标签: ajax playframework-2.3

我有一个控制器LessonController,其行为为save()。我执行此操作的路线是POST /save LessonController.save(name: String)。此操作的代码非常简单。

public static Result save(String name){
    Lesson lesson = new Lesson();
    lesson.setTitle(name);
    lesson.save();

    return ok(lesson.getLessonId().toString());
}

这是我在视图中的ajax调用

myJsRoutes.controllers.LessonController.save(name).ajax({
    success : function(id){
        alert('Success');
    }
});

此代码确实创建了一个课程,但它刷新了页面,并且不会从ajax请求执行成功块。我想这是因为我正在返回Result类型。我尝试将返回类型更改为String,但它给了我一个编译错误。

所以问题是,如何在没有页面刷新行为的情况下使用ajax调用控制器中的操作?

2 个答案:

答案 0 :(得分:0)

如果您从中获得页面刷新,那么出于其他原因。例如,使用提交按钮触发ajax调用而不消耗按钮事件,以便它导致表单提交POST或GET

答案 1 :(得分:0)

请检查您的AJAX通话事件,但您可以使用提交按钮触发AJAX通话,或者您可能是在同一事件的网页上提交任何表格。