TypeError:'追加'调用一个没有实现接口FormData的对象,其中processData和contentType都是false

时间:2016-05-21 12:39:56

标签: javascript jquery ajax

首先,请原谅我的英语。我试图用ajax提交表单,我的js代码是下一个:

$("#formPublicidad").on('submit', function(event) {
    event.preventDefault();
    var dataForm = new FormData(document.getElementById('formPublicidad'));

    if(dataForm.get('url') == '' || dataForm.get('texto') == '' || dataForm.get('imagen') == '') {
        $("#formMsg").text('Debe rellenar todos los campos');
        $("#formMsg").css('display', 'block');
    }else {
        $("#formMsg").text('Cargando...');
        $(".btn-form-pub").attr('disabled', true);
        $.ajax({
            url: 'publicidad.ajax.php', 
            method: 'POST',
            data: dataForm,
            pocessData: false,
            contentType: false,
            cache: false,
            dataType: 'json',
            success: function(response) {
                var msg = JSON.stringify(response.msg).replace(/\"/g, "");
                $(".btn-form-pub").attr('disabled', false);
                if(msg != 'success') {
                    document.getElementById('formMsg').textContent = msg;
                    document.getElementById('formMsg').style = 'display: block;';
                }else {
                    $("#formModal").modal('hide');
                }
            }
        });
    }
});

这是我的HTML代码:

<form method="post" id="formPublicidad">
    <div class="modal-body">
        <span id="formMsg"></span>
        <input type="hidden" name="posicion" id="pubPos">
        <label for="publiUrl">URL</label>
        <input type="text" name="url" id="publiUrl" placeholder="Ej.: www.google.com.uy" class="form-control">
        <label for="publiText">Texto</label>
        <input type="text" name="texto" id="publiText" placeholder="Ej.: Google" class="form-control">
        <label for="publiImg">Imagen</label>
        <input type="file" name="imagen" id="publiImagen">
    </div>
    <div class="modal-footer">
        <button type="button" class="btn btn-default btn-form-pub" data-dismiss="modal">Cancelar</button>
        <button type="submit" class="btn btn-primary btn-form-pub" id="btn-add-pub">Guardar cambios</button>
    </div>
</form>

当我尝试通过控制台中的ajax提交时,我有下一个错误:

  

TypeError:&#39;追加&#39;调用了一个没有实现接口FormData的对象。

我已经把这个做了很多次,但现在不行。 请有人帮忙吗?非常感谢!!

2 个答案:

答案 0 :(得分:0)

我真的解决了这个问题,我从另一个类似的实现中复制并粘贴了代码,并将FormData的名称变量更改为数据

$.ajax({
        url: 'publicidad.ajax.php',
        type: 'POST',
        data: data,
        contentType: false,
        processData: false, 
        cache: false,
        dataType: 'json',                  
        success: function(data) { 
            // response
        }
});

答案 1 :(得分:-1)

您在原始Ajax调用中拼错了processDatapocessData)。这可能就是为什么当你从其他来源复制粘贴而没有做任何实质性改变时它开始工作的原因。