【发布时间】:2017-12-14 12:50:00
【问题描述】:
注意:我是 Play 框架的新手
使用这个video tutorial and playlist,我设法创建了一个简单的网络应用程序。
问题:
路由文件中的POST 方法似乎没有执行所需的 POST 代码。
给定下面的路由文件,浏览到localhost:{port}/user/register 请求GET,从而渲染并返回register view。
填写register view 字段,然后单击submit,刷新页面(通过清除输入字段)并显示预期的“注册”文本
如果method="post" 已添加到register view 中的form,则会立即显示403 Forbidden page 页面。
为什么没有显示“注册”文本,我错过了什么(做错了)?
路线文件:
GET / controllers.HomeController.index
GET /user controllers.LoginController.index()
GET /user/login controllers.LoginController.login()
POST /user/login controllers.LoginController.doLogin()
GET /user/register controllers.LoginController.register()
POST /user/register controllers.LoginController.doRegister()
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
控制器:
HomeController
LoginController
LoginController 方法:
public Result index() { return ok(views.html.user.index.render(User.getAllUsers())) }
public Result login() { return ok(login.render()); }
public Result doLogin() { return ok("registered"); }
public Result register() { return ok(register.render()); }
public Result doRegister() { return ok("registered"); }
注册查看:
@()
<html>
<head>
<title>Register new User</title>
</head>
<body>
<h1>Register User</h1>
<br>
<br>
Enter Email Address: <input type="password" name="confirmPassword">
Enter Password: <input type="password" name="confirmPassword">
Confirm Password: <input type="password" name="confirmPassword">
<br>
<br>
<form action="@routes.LoginController.doRegister()">
<input type="submit" value="Register"/>
</form>
</body>
</html>
控制台输出错误:
[warn] p.filters.CSRF - [CSRF] Check failed because no or invalid token found in body
[warn] p.filters.CSRF - [CSRF] Check failed with NoTokenInBody
【问题讨论】:
标签: scala playframework playframework-2.0 sbt