1

問題がありますInternet Explorer

これは、AJAX と jQuery を使用したスクリプトのサンプルで、他のブラウザーでは問題なく動作しますが、IEそうではありません

index.html

<form enctype="multipart/form-data" method="post">
    <input name="file" type="file" multiple="true" id="file" />
    <input type="button" value="Upload" /> or clic "U"
</form>

ajax.js

$(':button').click(function(){
    var formData = new FormData($('form')[0]);
    $("#data").html(formData);
    $.ajax({
        url: 'upload.php',  //server script to process data
        type: 'POST',
        xhr: function() {  // custom xhr
            myXhr = $.ajaxSettings.xhr();
            if(myXhr.upload){ // check if upload property exists
                myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // for handling the progress of the upload
            }
            return myXhr;
        },
        //Ajax events
        //beforeSend: beforeSendHandler,
        success: function(html) {
            $("#php").html(html);
            $("#file").val('');
        },
        error:function(html) {
            $("#php").html(html);
        },
        enctype: 'multipart/form-data',
        // Form data
        data: formData,
        //Options to tell JQuery not to process data or worry about content-type
        cache: false,
        contentType: false,
        processData: false
    });
});

他のブラウザでは正常に動作しますが、動作しOperaIEいません。

これは CONSOLE( F12) エラーです。IE

SCRIPT5009: 'FormData' is undefined 
ajax.js, line 53 character 9

問題を解決するにはどうすればよいですか?

4

2 に答える 2

0

FormData クラスは html 5 でのみ使用でき、html5 は最新バージョンのブラウザでサポートされています。

問題は IE であり、最新のものでも ajax を介して複数のファイルをアップロードするためのセキュリティ上の問題がありますが、1 つのファイルをアップロードできます。

ajaxでアップロードすることを主張する場合は、iframeまたはflashオブジェクトを使用して古いブラウザにアップロードすることをお勧めします

于 2013-02-06T02:04:35.107 に答える
0

SCRIPT5009: 'FormData' は未定義の ajax.js です。行 53 文字 9 これがコードです

エラーがここにあると仮定すると、FormData上記のコードの上にメソッドを移動します。

例:

function FormData (form) {
   ....
}

$(':button').click(function(){
    var formData = new FormData($('form')[0]);
    $("#data").html(formData);
    $.ajax({
        url: 'upload.php',  //server script to process data
        type: 'POST'...

編集

明らかに、FormDataIE ではサポートされていません。serializeただし、次のようにjQueryを使用できる場合があります。

var formData = $('form').serialize();
于 2012-08-09T20:29:04.710 に答える