我正在向服务器发送 AJAX 请求,成功后我想更新页面而不完全刷新它。这是我的代码片段,但在这里我可以重新加载页面,并且不知道如果没有它如何执行此操作,我的线路也无法工作,您能帮忙吗?
PS。我使用 Django 作为后端
function saveTags(slug, form, e) {
e.preventDefault();
let tags = form.getElementsByClassName("new-tags")[0].value;
if (tags != '') {
var formData = {
csrfmiddlewaretoken: '{{ csrf_token }}',
slug: slug,
tags: tags,
};
var POST_URL = "{% url 'save_tags' %}";
$.ajax({
url: POST_URL,
type: "POST",
data: formData,
success: function (data) {
var x = document.getElementById("snackbar");
x.classList.add("show");
setTimeout(function(){ x.className = x.className.replace("show", ""); }, 3000);
$("document").html(data);
//window.location.reload(true);
}
}); // end ajax
}
return false;
};
在 Django 视图中,您应该使用
django.template.loader.render_to_string
渲染模板,然后使用 django.http.HttpResponse
返回它。
在你的前端你可以做类似的事情
.success(data => $("body").html(data))
关键是你应该显式地将模板渲染为字符串