我使用jQuery Form插件来提交异步表单。对于包含文件的表单,它将表单复制到隐藏的iframe,提交它,并复制回iframe的内容。问题是,我不知道如何找到什么HTTP状态代码由服务器返回。例如,如果服务器返回404,则来自iframe的数据将被正常复制,并作为常规响应处理。
我试过在iframe对象中寻找一些status_code属性,但没有能够找到这样的东西。
解决方法
你不能获得JS的页眉,但你可以区分错误和成功:
尝试这样:
尝试这样:
<script type="text/javascript"> var uploadStarted = false; function OnUploadStart(){ uploadStarted = true; } function OnUploadComplete(state,message){ if(state == 1) alert("Success: "+message); else if(state == 0 && uploadStarted) alert("Error:"+( message ? message : "unknow" )); } </script> <iframe id="uploader" name="uploader" onload="OnUploadComplete(0)" style="width:0px;height:0px;border:none;"></iframe> <form id="sender" action="/upload.PHP" method="post" target="uploader" enctype="multipart/form-data" onsubmit="OnUploadStart()"> <input type="file" name="files[upload]"/> <input type="submit" value="Upload"/> </form>
在服务器端:
/* file: upload.PHP */ <?PHP // do some stuff with file print '<script type="text/javascript">'; if(success) print 'window.parent.OnUploadComplete(1,"File uploaded!");'; else print 'window.parent.OnUploadComplete(0,"File too large!");'; print '</script>'; ?>