Skip to main content
 首页 » 编程设计

ajax表单数据: Illegal invocation

2024年05月22日17bjzhanghao

我尝试制作用于 Symfony 2 上传的 ajax 脚本。Chrome 返回此错误:

Uncaught TypeError: Illegal invocation jquery.min.js:4

我认为这是由于 FormData 对象未正确构造(我尝试使用 .serialized() 编写脚本:

$(document).ready(function() { 
  $('#formImage').submit(function(event) { 
    event.preventDefault(); 
    // appel Ajax 
    alert("ajax"); 
 
    var input = document.getElementById("rasta_blogbundle_imagetype_file"); 
    console.log(input);  
    var formdata = false;   
 
    if (window.FormData) {   
        formdata = new FormData(); 
        console.log('formdata initialized ...');   
    } 
    else{ 
        console.log('formdata not supported'); 
    } 
 
    formdata.append('name',$('#rasta_blogbundle_imagetype_name').val()); 
    console.log(formdata); 
    formdata.append('file',input); 
    formdata.append('_token',$('#rasta_blogbundle_imagetype__token').val()); 
    console.log(formdata);     
    //alert(DATA); 
 
    if (formdata){   
        $.ajax({ 
            url: $(this).attr('action'), // le nom du fichier indiqué dans le formulaire 
            type: $(this).attr('method'), // la méthode indiquée dans le formulaire (get ou post) 
            cache: false, 
            //data : $(this).serialize(), 
            data: formdata , 
            success: function(data) { // je récupère la réponse du fichier PHP 
                $('#myModal').html(data); 
                console.log('ok'); 
            }         
            //return false; // 
        });  
    } 
  }); 
}); 

请您参考如下方法:

jQuery 尝试将您的 FormData 对象转换为字符串,将其添加到您的 $.ajax 调用中:

processData: false, 
contentType: false