6

これを IE で動作させるにはどうすればよいですか? これは IE では機能しません。新しい FormData() API は IE ブラウザでサポートされていません。IE の new FormData() に相当する他の A​​PI はありますか?

var fd = new FormData();
fd.append( "userfile", $("#userfile")[0].files[0]);

$.ajax({
    url : '/user/ajax_upload/',
    type: 'POST',
    contentType:false,
    cache: false,
    data: fd,
    processData: false,
    beforeSend :function(){
    },
    success : function( data ) {
        $('#popupbox').html(data);  
    }
});
4

4 に答える 4

4

実際、他のすべてのブラウザーで $.ajax を使用できるようにコードを変更し、このような IE ブラウザー用の iframe を作成しました。

メーラー.php

<!--[if IE]>
   <iframe src="form.php"></iframe>
<![endif]-->

<![if !IE]>
<script>
    $(document).ready( function() {
        //Program a custom submit function for the form
        $("#form").submit(function(event){

          //disable the default form submission
          event.preventDefault();

          //grab all form data  
          var formData = new FormData($(this)[0]);

          $.ajax({
            url: $("#form").attr('action'),
            type: 'POST',
            data: formData,
            async: false,
            cache: false,
            contentType: false,
            processData: false,
            success: function (returndata) {
              alert(returndata);
            }
          });

          return false;
        });
    });
</script>

<?php include_once ('form.php'); ?>

<div id="email-success"></div>
<![endif]>

フォーム.php

<form id="form" action="form-exec.php" target="_self" method="post" enctype="multipart/form-data">
    <input type="text" name="email-to" value="" />
    <input type="text" name="email-subject" value="" />
    <input type="text" name="email-message" value="" />
    <input type="file" name="file" />
    <input type="file" name="file2" />
    <button type="submit" name="email-send">Skicka</button>
</form>

私の場合、form-exec.php は私の PHPmailer 送信者です!

于 2014-01-18T19:43:26.723 に答える
1

私の知る限り、IE9 +でのみ可能です。ファイル「ajax like」をアップロードするには、iframe トリックを使用する必要があります。それを実装するときにソースとして使用しました:

http://ramui.com/articles/ajax-file-upload-using-iframe.html

于 2013-04-02T05:32:26.547 に答える
-3

どうやら、FormData は IE ではサポートされていません。ただし、次のように jQuery のシリアル化を使用できる場合があります。

        var FD = $('form').serialize();
于 2013-04-02T05:33:06.573 に答える