2012-09-04 26 views
1

在jQuery AJAX請求中執行重定向是不好的做法嗎?從AJAX'成功'回調中使用window.location.replace是不好的做法嗎?

$.ajax({ 
    url: "myurl",  
    success : function(response) { 
     window.location.replace('MYNEWPAGE'); 
    }, 
    error: function (xhr) { 

    } 

我在應用程序中遇到一些奇怪的行爲,我認爲這是問題所在。

+0

如果您在ajax調用之後重新加載頁面,那麼執行簡單表單POST和重定向可能會更簡單。 – Pointy

+0

這不允許在沒有頁面重新加載的情況下發生故障,並且它不允許進行除POST之外的其他操作。我昨天對DELETE做了同樣的事情,如果DELETE成功,頁面只應該重定向。我也對這種構造是否會導致問題感興趣(在我的情況下,我沒有看到任何問題)。 –

回答

5

location.replace()不會將當前頁面存儲到瀏覽器歷史記錄中,用戶無法使用後退按鈕返回到頁面上。您應該使用location.assign(URL)location.href = URL

0

只應使用window.location.href = "whatever"來更改網址。請注意,這將導致你回發你的整個頁面,奇怪的行爲可能來自你的加載事件在新的頁面意外啓動,包括其他ajax事件,也可能會設置window.location.href - 理論上你可能會死鎖與東西只是繼續送你到新的頁面(小心)。

相關問題