gpt4 book ai didi

javascript - Django提交表单->重定向到新页面->自动更新新页面

转载 作者:行者123 更新时间:2023-11-30 16:25:08 28 4
gpt4 key购买 nike

好的,正如标题所描述的,我正在尝试创建一个网页(test.html),在提交表单后,它应该将我重定向到一个新页面(比如 status.html)。加载此页面后,它应该显示提交任务的一些持续更新。我能够在单个页面上完成此操作,但当我尝试将其重定向到新页面时,我很不走运。

测试.html

<form action="status/" method="POST" id="start-form">
.....
<input type="submit" value="Start" class="tbutton">

View .py

def status_page(request):
print("Inside redirect")
return HttpResponseRedirect(request,'my_app/status.html')

网址.py

url(r'^test/status/$', 'status_page'),

java.js

$('#start-form').on('submit',function(event){
event.preventDefault();
status();
});
function status() {
$.ajax({
url : "status_page/", // the endpoint
type : "POST", // http method
data:{' ': '',}, // data sent with the post req
headers: {Accept: "application/json"},
success : function(json) {
//on success display the rendered page,so what coding is needed here?
},
error : function(xhr,errmsg,err) {
//error handling code }
});
}

执行时,新页面未加载,但如果我绕过 javascript,则会执行表单操作,并通过 View 呈现新页面。但是对于 JavaScript,成功会发生什么? View 中的返回语句如何在成功中捕获以及页面如何显示?我需要使用 javascript 和 AJAX,因为一旦加载新页面,我需要在同一页面上显示连续更新。那么基本上我如何使用javascript和Django使用上述代码实现到新页面的重定向?任何帮助将不胜感激!

最佳答案

在您的 views.py 中,HttpResponseRedirect 使用不当。如果你想重定向到一个新页面,那么你应该使用,

return HttpResponseRedirect('/url-where-you-want-to-redirect/')

因为 HttpResponseRedirect 需要 url 参数而不是模板名称。

参见此处:https://docs.djangoproject.com/en/1.9/ref/request-response/#django.http.HttpResponseRedirect

更好的方法是从您的 status_page View 返回一个 JSON 响应,然后在 ajax 的 success 方法中,您可以转到下一个 URL:

window.location.href = '/url-where-you-want-to-redirect/';

希望对您有所帮助。

关于javascript - Django提交表单->重定向到新页面->自动更新新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34218112/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com