2014-06-25 113 views
0

我有一個基本的ajax註釋表單,帶有textarea和yes/no radio對象。request.send()之後重定向 - 請求未發佈,頁面重定向

  • 如果「是」選擇的,用戶的評論發佈,然後 他們被帶到一個新的頁面。
  • 如果「否」,則發佈評論並保留在同一頁面上。

發生什麼事情是,當用戶選擇「是」,並且頁面重定向時,不會發布評論。

這裏的後處理腳本:

// 
    flag_yesno  = getRadioValue('form_comments', 'flag_yesno'); 

    request.open('POST', 'process.php?t=' + new Date().getTime()); 
    request.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 

    request.onreadystatechange = function() 
    { 
     if(request.readyState == 4) 
     { 
      // put response text in the comment_posts div 
      comment_posts.innerHTML  = request.responseText; 
     } 
    } 

    // set up POST parameters 
    var params = "&foo=" + foo + "&bar=" + bar; 

    // send it on over! 
    request.send(params); 

    // redirect if needed 
    if (flag_yesno=='yes') 
    { 
     window.location = '/foo.php?foo='+foo; 
    } 

有沒有一種方法來處理重定向request.send()被解僱後,關閉?似乎重定向正在打破這一部分。

+0

在處理請求結果的回調函數中執行重定向。 – CBroe

回答

2

等到通話結束。等待「直到它被解僱」很難衡量。

if(request.readyState == 4) 
{ 
    if (flag_yesno == 'yes') 
    { 
    // redirect if needed 
    window.location = '/foo.php?foo='+foo; 
    } 
    else 
    { 
    // put response text in the comment_posts div 
    comment_posts.innerHTML  = request.responseText; 
    } 
}