检索HTTP状态code从加载iframe中使用JavaScript [英] Retrieving HTTP status code from loaded iframe with Javascript

查看:219
本文介绍了检索HTTP状态code从加载iframe中使用JavaScript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用jQuery的形式插件用于异步表单提交。对于包含文件的形式,它拷贝的形式隐藏的iframe,提交它,并复制备份的iframe的内容。现在的问题是,我无法弄清楚如何查找HTTP状态code的服务器返回。例如,如果服务器返回404,从iframe的数据将被复制为正常和视为常规的响应

I used the jQuery Form plugin for asynchronous form submission. For forms that contain files, it copies the form to a hidden iframe, submits it, and copies back the iframe's contents. The problem is that I can't figure out how to find what HTTP status code was returned by the server. For example, if the server returns 404, the data from the iframe will be copied as normal and treated as a regular response.

我试着在iframe对象寻求某种状态_ code 属性闲逛,但一直没能找到类似的事情。

I've tried poking around in the iframe objects looking for some sort of status_code attribute, but haven't been able to find anything like that.


$。阿贾克斯()功能不能使用,因为它不支持上传文件。只有这样,才能异步上传,我知道的是使用文件隐藏 IFRAME 方法。

The $.ajax() function can't be used, because it does not support uploading files. The only way to asynchronously upload files that I know of is using the hidden iframe method.

推荐答案

您不能页头被JS,但是你可以从成功的区分错误: 尝试是这样的:

You can't get page headers by JS, but you can distinguish error from success: Try something like this:

<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>';
?>

这篇关于检索HTTP状态code从加载iframe中使用JavaScript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆