Như có thể thấy trong đoạn mã sau, tôi có GET
để đăng ký, ủy quyền công việc của mình cho POST
.Đối số Tornado - '_xsrf' bị thiếu trong POST
class RegistrationHandler(tornado.web.RequestHandler):
def get(self):
s = """
<h1>Register</h1>
<form method="post" action="/register">
<div>
<label>User</label>
<input name="user_name" value="[email protected]"/>
</div>
<div>
<label>password</label>
<input name="password" type="password"/>
</div>
<div>
<input type="submit" value="submit"/>
</div>
</form>
"""
self.write(s)
@log_exception()
def post(self):
user_name = self.request.arguments['user_name']
password = self.request.arguments['password']
log.debug('Registering user with credentials %r' % (user_name, password))
with sa_session() as db_session:
User.register(user_name, password, db_session)
Khi tôi truy cập URL từ trình duyệt web, tôi nhận được biểu mẫu đăng ký, sau khi gửi mà tôi nhận được "403: Bị cấm".
điều khiển đăng nhập:
2012-10-15 11:27:42,482 - __main__ - DEBUG - Starting server on port 8080
2012-10-15 11:27:49,377 - root - INFO - 304 GET /register (127.0.0.1) 0.78ms
2012-10-15 11:27:53,143 - root - WARNING - 403 POST /register (127.0.0.1): '_xsrf' argument missing from POST
2012-10-15 11:27:53,144 - root - WARNING - 403 POST /register (127.0.0.1) 1.05ms
không lỗi này có nghĩa là gì và làm thế nào để sửa chữa nó? Cảm ơn.
Nó đặt ra một lỗi mà tên 'xsrf_form_html()' không được xác định. Tôi có cần nhập khẩu không? Nếu có, làm cách nào để thêm nó vào mẫu của tôi? – missingfaktor
Bạn không cần bất kỳ nhập khẩu đặc biệt nào. Lưu ý rằng xsrf_form_html() sẽ chỉ hoạt động trong Mẫu. Mã bạn đăng ở trên không phải là mẫu. –
Đây là mã Python của tôi - https://www.refheap.com/paste/5955, và đây là mẫu của tôi - https://www.refheap.com/paste/5956. – missingfaktor