<form id="login_frm" method="post" action = "/login/user_auth/">
<fieldset>
<legend>Login:</legend>
<label for="id_email">Email</label>
<input type="text" name="email" id="id_email" />
<label for="id_password">Password</label>
<input type="password" name="password" id="id_password" />
</fieldset>
<input name = "login" type="submit" value="Login" />
</form>
$(document).ready(function () {
$('#login_frm').submit(function() {
var $form = $(this);
$.post('/login/user_auth/' , form.serialize(), function(data) {
// alert ("function");
alert (data);
});
return false;
});
});
Django View:
def login_user(request):
if request.method == 'POST':
# perform all logic / and db access
data = "hello"
return HttpResponse(data)
# return HttpResponse ('success.html')
Я застрял на этом весь день.
Когда я вернусь data
как мой ответ, дляпо какой-то причине браузер отображает «Hello», загружая пустую веб-страницу с надписью «Hello»;в приведенной выше функции JavaScript alert (data);
никогда не вызывается (я не могу понять, почему).
Я не могу отобразить success.html.Я считаю, что если я напишу render_to_response внутри HttpResponse, я решу эту проблему.Тем не менее, я считаю, что создание пункта 1 является первоочередной задачей.
Цель
После публикации я хотел бы получить ответ отсервер (будь то просто «привет») или веб-страница, на которой отображается сообщение об успехе, сохраненное в «success.html»), и отображает его вместо login_frm
, не обновляя браузером новую веб-страницу.