2014-01-29 49 views
0

,重定向方法不會等待發布方法完成目標:我想使用'post'方法將http請求發送到其他網站(忽略數據),然後重定向到另一個頁面。與此類似,

$.when($.post("https://www.example.com/result")) 
    .then($(location).href('page2.html')); 

好像重定向過程工作正常,但不是後處理。

我確定我的發佈方法是正確的,當它是獨立的。

但是當我把它與重定向方法。這是行不通的。

我假設$(位置)已經執行,而post方法還沒有完成。

我該怎麼辦?

謝謝

回答

2

.then()需要回調。你正在傳遞一個函數並執行它。只需將它放在一個函數:

$.when($.post("https://www.example.com/result")) 
.then(function (data, textStatus, jqXHR) { 
    $(location).href('page2.html') 
}); 

注意傳遞給回調的參數,如described in jQuerys API

由於jfriend00的意見建議,一個簡單的解決問題的方法是使用中,.done()函數:

$.post("https://www.example.com/result").done(function() { 
    $(location).href('page2.html'); 
}); 
+1

你就不能做到'$。員額(「https://開頭www.example.com/result「)。完成(...)'? – jfriend00

+1

編輯我的評論,將其更改爲'.done()'。 – jfriend00

+0

:)非常感謝你。 –