2009-06-26 44 views
1

我有一個連接到我的網站後端的聯繫表格,表單提交得很好,但我沒有得到服務器響應。它總是'未定義'。我擔心這可能是因爲this,但我希望也許你們中有一個更聰明的人可以幫我找到解決方法,或者如果它不是因爲that(注意:很可能),那麼也許你可以告訴我我做錯了什麼。Flash聯繫表格;麻煩回覆服務器響應

//========================================================== 
public function openForm():void { 
//========================================================== 
    var sendForm:URLLoader = new URLLoader(); 
    var newFile:FileReference = new FileReference(); 
    var request:URLRequest = new URLRequest(urlString); 
    if (form1.planby.visible && form1.planby.upload.selected) { 
     newFile.addEventListener(HTTPStatusEvent.HTTP_STATUS, responseStatus); 
     newFile.upload(request, "attache[attachment]", false); 
    } else { 
     sendForm.addEventListener(HTTPStatusEvent.HTTP_STATUS, responseStatus); 
     sendForm.load(request); 
    } 
} 

//========================================================== 
function responseStatus(e:HTTPStatusEvent):void { 
//========================================================== 
    //e.status == "undefined" according to debugger 
    if (e.status == 200) { 
     openPage("success"); 
    } else { 
     openPage("error"); 
    } 
} 

回答

2

根據我的經驗,獲取HTTP調用的狀態代碼只是普通的不可靠,除非您在AIR中進行部署。

考慮到這一點,通常最好讓服務器發回一些簡單的文本,驗證它的一切正常 - 如果您沒有收到該文本,則進入錯誤模式。

是的,這是一個痛苦的屁股,社區中的每個人都迫切希望Adobe儘快解決這個問題。

+1

我幾乎沒有理會這些事件,即使做了一個簡單的連接成功事件,我不得不求助於從服務器返回一個布爾值的小型請求。 – 2009-06-26 16:03:44

+0

謝謝勃蘭登。我想這就是我必須要做的。如果他們解決了這個問題會很好。 – 2009-06-26 20:08:41

1

你不應該聽Event.COMPLETE事件而不是HTTP_STATUS事件(正如Branden說的那樣,是不可靠的)?