我有一个连接到我网站后端的联系表单,表单提交得很好,但我没有得到服务器响应。它始终是“未定义的”。我担心这可能是因为this,但我希望也许你们中的一个聪明人可以帮助我找到一个解决方法,或者是不是因为that(注意:很可能) ),那么也许你可以告诉我我做错了什么。
//==========================================================
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");
}
}
答案 0 :(得分:2)
根据我的经验,获取HTTP调用的状态代码是非常不可靠的,除非您在AIR中部署。
考虑到这一点,你通常最好让服务器发回一些简单的文本,确认一切正常 - 如果你没有得到那个文本,那么进入你的错误模式。
是的,这是一个痛苦的屁股,社区中的每个人都迫切地希望Adobe很快解决这个问题。
答案 1 :(得分:1)
你是不是应该监听Event.COMPLETE事件而不是HTTP_STATUS事件(正如Branden所说,这是不可靠的)?