Ajax Post不会加载页面,即使日志显示了调用



我的django应用程序中有两个页面
(这是我的第一个django应用程序,我也是javascript新手。(

第一页-每行有一个复选框和一个编辑按钮的表格
第二页-带保存按钮的输入屏幕

问题:我正在尝试获取从第一页到第二页的行ID列表

到目前为止:在编辑按钮的OnClick事件中,我收集数组中所选行的所有Id。

我使用$.ajax调用通过POST将这个数组发送到第二个页面。

$.ajax({
url: '/secondpage/',
type: 'POST',
headers: { "X-CSRFToken": csrftoken,
'Accept': 'application/json',
'Content-Type': 'application/json' },
data: {'idsList': JSON.stringify(selectedIds)},
success: function (response) {
console.log('success');
},
error: function (xhr, ajaxOptions, thrownError) {
alert("ERROR " + xhr.status + " - " + thrownError);
}                        
});

当我单击编辑按钮时,在第一页中选择了一些行后,
我在django日志中看到以下条目
[13/Aug/2020 14:36:14] "POST /secondpage/ HTTP/1.1" 200 41403
,但第二页没有加载。我仍然可以在浏览器中看到第一页

在Dev.Tools中,我将"成功"视为最后一条控制台消息。

我错过了什么?有人能帮我吗
提前谢谢。

忘记在最初的帖子中添加这个:

def secondpage(request):
idsList = request.POST.getlist('idsList[]')
return render(request, "secondpage.html", {'listIds': idsList})

您只是向secondpage/发送了一个ajax调用。没有什么可以告诉它在浏览器中加载。你需要做几个选择之一:

  1. 从POST响应中获取结果,并将结果加载到"pageone"中,以代替

  2. 将用户重定向到/secondpage/some/variable/values,让def secondpage()进行计算,然后呈现secondpage.html

OP编辑后更新:

您没有正确使用ajax。使用ajax,您可以停留在当前页面(url(上。它会从后端(服务器(获取一些值,并更新当前所在的页面。您正在做的是将请求发送到一个新的视图。它返回的是一个完整的网页,你没有做任何事情。

你可能只想使用一个表格:

<form action="/secondpage" method="POST">
<input type="checkbox" id="vehicle2" name="vehicle2" value="Car" />
....
<input type="submit" value="go to page 2" />
</form>

然后将选中的值组合到视图中的列表中。

相关内容

最新更新