0

jquery.form.js プラグインのファイルアップロード成功のコールバック関数が IE で動作しません。

fileupload 成功のコールバックは、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

同様の問題を扱っているこの質問を参照してください。

AJAXを使用してファイルをアップロードしているため、IEで問題が発生する可能性があります。jquery.form.jsドキュメントのこのページを参照してください。これにより、ほぼ確実に問題が解決します。

つまり、ブラウザがXMLHttpRequestオブジェクトを使用しているかどうかを判断する必要があります。使用していない場合は、結果を<textarea>に返し、content-typeをtext / htmlに設定して、IEがOpen/を表示しないようにします。 [保存]ダイアログボックス。

于 2013-01-03T17:38:19.917 に答える