2010-10-22 51 views
3

我必須在提交我的php頁面前發送郵件,我使用javascript提交頁面。 我的郵件腳本位於sendmails.php文件中。所以我可以發送一個Ajax請求發送郵件之前提交使用Java腳本的頁面?如下所示簡單的ajax問題

function submit_page() 
{ 
//trying to run send_mail.php 
..............................//ajax codes 
............................ 
xmlhttp.open("GET","send_mail.php",true); 
xmlhttp.send(); 
................................. 

if(a) 
form.action = 'one.php' 
else 
form.action = 'two.php' 
form.submit()//form submitting using javascript 
} 

它會運行服務器中的send_mail.php文件嗎?

謝謝

+0

什麼是「a」?如果是請求的成功狀態,則應該在回調中使用它,因爲您的請求是異步的... – 2010-10-22 10:15:08

回答

0

我對此表示懷疑 - Ajax請求需要一定的時間來完成,而你導航立即從網頁,這將與請求干擾了。

建議 - 在同步模式下執行ajax請求。這樣你就可以保證它會在表單提交之前完成。

+0

因此,頁面發出時,來自頁面的所有請求都會中止? – 2010-10-22 10:14:34

+0

我相信是這樣的 - 我的請求在導航離開時遇到了問題,但也可能是因爲它在iframe中。但至少,這是不安全的。在ajax請求甚至可以完成發送之前,您很可能會離開該頁面。 – 2010-10-22 10:17:37

2

是的,但不要依賴這發生在send()返回之前的事實。 send()只是啓動一個後臺線程,最終將打開連接到send_mail.php併發布表單。所以可能發生郵件發送前提交表格