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

标签 jquery ajax http forms iframe

我使用 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 - 使用 Javascript 从加载的 iframe 中检索 HTTP 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35240/

相关文章:

javascript - 如何通过我用php制作的jQuery调用增量id

javascript - 如果 div 类名匹配,则单击时显示/隐藏 div

javascript - 在 Javascript 中排队 Ajax 请求?

c# - 检测访问者是否是浏览器而不是爬虫

c++ - 使用 C++ 提交表单的 Http GET 请求

javascript - jQuery Tabs - 防止 anchor 在单击时将页面滚动到顶部

javascript - 如何为 Highcharts 中的区域线创建 z 索引?

javascript - 在 jqGrid 中只加载可选择的列

javascript - 使用 Ajax 将值从 javascript 传递到 php 变量

http - 下载管理器如何在没有多个请求的情况下通过 HTTP 下载大文件?