[英]I don't understand why Redirect() is not working
我正在使用GAE webapp2,我有一個使用jquery驗證過的表單,然后使用jquery發布了數據,並且在有效日期的響應中,我嘗試執行
self.redirect("/thankyou")
它不起作用,但是實際上在終端中顯示post方法已經完成,而Thankyou
類的get方法也已經完成。 頁面永遠不會改變。
查詢文件可以阻止服務器的響應嗎? 還是我做錯了什么? 我懷疑它與jquery有關的原因是因為我在另一種表單上使用了幾乎相同的代碼,但未使用jquery進行驗證,並且重定向工作正常。
這是我的jQuery代碼。
//validation code on multiple fileds
$("#booking_form").validate();
//adding rules to validation
$("#pax_name").rules("add", {
minlength: 2
});
$("#pax_mobile").rules("add", {
minlength: 10
});
return false;
});
$("#booking_form").validate({
debug: false,
submitHandler: function (form) {
// do other stuff for a valid form
$.post('/booking', $("#booking_form").serialize(), function (data) {
Recaptcha.reload();
});
}
});
謝謝。
由於您要向服務器觸發AJAX請求,而該請求將異步觸發,因此您無法從服務器重定向。 您需要等待響應,並根據服務器發送的響應在客戶端上重定向。
請查看此鏈接,其中顯示了如何處理來自服務器的Ajax重定向。
您必須在Javascript中處理重定向。 希望以下內容能解決您的問題:
$("#booking_form").validate({
debug: false,
submitHandler: function (form) {
// do other stuff for a valid form
$.ajax({
type: "POST",
url: '/booking',
data: $("#booking_form").serialize(),
dataType: "json",
success: function(data) {
if (data.redirect) {
// You can here redirect the user to the new page
window.location.href = data.redirect;
}
}
});
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.