0

jquery.form.js 插件文件上传成功回调函数在 IE 中不起作用。

文件上传成功回调在 chrome、firefox、safari 中工作。

我不知道为什么“SUCCESS 回调函数”在 IE 中不起作用(IE9、IE8、IE7 也是 ..)

这是我的代码 <jQuery Form Plugin * version: 3.23 (11-DEC-2012) >

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript" charset="utf-8" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>

    <script type="text/javascript">
        function func_beforeSubmit() {
        }
        function func_success(data) {
            alert(data);
        }
        function func_complete(xhr) {
            alert(xhr.responseText);
        }

        jQuery(document).ready(function() {
            var options = {
                clearForm       :   true,        // clear all form fields after successful submit         
                resetForm       :   true,        // reset the form after successful submit
                url             :   "url <-- just return text string",
                type            :   'post',
                dataType        :   'text',
                beforeSubmit    :   func_beforeSubmit,
                success         :   func_success,
                complete        :   func_complete
            };

            jQuery('#btn_file_upload_ajax').change(function() { jQuery('#frm_upload_ajax').submit(); });
            jQuery('#frm_upload_ajax').ajaxForm(options);
        });

    </script>
</head>
<body>
    <form id="frm_upload_ajax" method="post" enctype="multipart/form-data">
        <input type="file" name="attach_imgfile_ajax" id="btn_file_upload_ajax" ><br>
        <input type="hidden" id="data" name="data"/>
    </form>
    <hr><br>
            <div id="image_upload_preview"></div>
</body>
4

1 回答 1

0

请参阅this question,它处理类似的问题。

您正在使用 AJAX 上传文件,这可能会导致 IE 出现问题。请参阅jquery.form.js 文档的此页面,这几乎肯定会解决您的问题。

简而言之,您需要确定浏览器是否正在使用 XMLHttpRequest 对象,如果不是,则在 <textarea> 中返回结果并将 content-type 设置为 text/html 以防止 IE 显示 Open/保存对话框。

于 2013-01-03T17:38:19.917 回答