jquery – 从加载的iframe使用Javascript检索HTTP状态代码

前端之家收集整理的这篇文章主要介绍了jquery – 从加载的iframe使用Javascript检索HTTP状态代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用jQuery Form插件来提交异步表单。对于包含文件的表单,它将表单复制到隐藏的iframe,提交它,并复制回iframe的内容。问题是,我不知道如何找到什么HTTP状态代码由服务器返回。例如,如果服务器返回404,则来自iframe的数据将被正常复制,并作为常规响应处理。

我试过在iframe对象中寻找一些status_code属性,但没有能够找到这样的东西。

$ .ajax()函数不能使用,因为它不支持上传文件。异步上传我知道的文件的唯一方法是使用隐藏的iframe方法

解决方法

你不能获得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>';
?>

猜你在找的jQuery相关文章