【发布时间】:2018-04-06 12:23:34
【问题描述】:
当我单击另一个模板中的按钮时,我试图在视图中呈现一个模板。我对视图中的方法进行了 ajax 调用,但我不确定它有什么问题。我无法渲染另一个模板,我做错了什么吗?
my view.py
@csrf_exempt
def checkLogin (request):
if request.is_ajax():
param = request.POST.get('param', None)
param1 = request.POST.get('param1', None)
if (param=="admin" and param1=="admin"):
Datenow = datetime.datetime.now().strftime('%H:%M:%S')
return render(request,'sample/test.html',{'Datenow': Datenow})
else:
Datenow = datetime.datetime.now().strftime('%H:%M:%S')
return render(request,'sample/login.html',{'Datenow': Datenow})
return HttpResponseBadRequest()
这是我模板中的 ajax 调用:
loginbt.onclick = function() {
var uName = $('#username').val();
var pWord = $('#password').val();
$.ajax({type: 'POST',
url: '/sample/checkLogin/', // some data url
data: {param: uName, param1: pWord}, // some params
success: function (response) { // callback
if (response.result === 'OK') {
if (response.data && typeof(response.data) === 'object') {
window.alert("its working");
}
} else {
// handle an unsuccessful response
}
}
});
}
当我单击模板中的按钮时,我得到了200 OK 结果,但模板并没有改变。任何建议都会有所帮助。
【问题讨论】:
-
你的
window.alert事件触发成功了吗? -
您的代码中没有任何内容会导致模板在任何地方显示?如果你想用模板响应更新 HTML,你需要在你的成功函数中这样做。
-
你认为你的页面为什么会改变?您将 HTML 文档返回给 ajax 函数,而该函数除了显示警报之外什么都不做。使用 ajax,您的 django 视图应该返回一个 JSON 文档,以便您的 ajax 函数可以处理它并相应地更改 HTML DOM 树。
-
@souldeux,不,不是
-
@solarissmoke 是的,但是在 onsuccess 方法中没有触发 window.alert
标签: javascript jquery ajax django django-views