Ajax上传无法在Firefox和IE中运行

时间:2016-02-08 23:22:07

标签: jquery ajax firefox upload

上传按预期工作,但不在Firefox中。 msg没有错误,帖子的回复状态为200 OK。但代码在firefox中停止,没有任何内容上传。我没有得到状态200旁边的服务器的响应

修改

从Firefox发布时,PHP不会触发POST事件;

表格;

<form id="avatar_form" method="post" action="ajax-php.php" enctype="multipart/form-data">
<input id="avatarFile" type="file" name="file" size="25" class="input" value="" data-type="file">
<input id="avatarUp" type="submit" value="Télécharger" disabled="disabled" name="avatarUp">
</form>

之后在PHP中我可以捕获POST

if(isset($_POST["avatarUp"])){// deal with the file here}

仅限Chrome。使用Firefox时未设置此帖子。

我有这个代码使用ajax上传文件;

$(document.body).ready(function () {
    $(document.body).on('submit', '#avatar_form', function (e) {
        e.preventDefault(e);
        var $form = $(this);
        var formdata = (window.FormData) ? new FormData($form[0]) : null;
        var data1 = (formdata !== null) ? formdata : $form.serialize();
        alert(data1);

        $.ajax({
            url: $form.attr('action'),
            type: $form.attr('method'),
            contentType: false, 
            processData: false, 
            dataType: 'json', 
            data: data1,
            success: function (response) {
                console.log(response);
                if (response == 1) {
                    var item = load_content('profil_menu').then(function (response) {
                        console.log("Item x", response);
                        data = response;
                        $('#profil_menu').html(data);
                        return;
                    });
                }
            }
        });
    });
});

代码在Chrome中工作正常但是在FirexFox或IE中,我不太关心IE但它应该在Firefox中运行吗?

这个帖子有什么问题?

1 个答案:

答案 0 :(得分:1)

通过设置async : false使您的ajax呼叫同步。这必须做好这项工作。