簡體   English   中英

我不明白為什么Redirect()無法正常工作

[英]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重定向。

jQuery 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM