Ajax 格式数据: 非法调用

我尝试为 Symfony 2上传一个 ajax 脚本,Chrome 返回这个错误:

未捕获的 TypeError: 非法调用 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; //
});
}
});
});
97737 次浏览

jQuery tries to transform your FormData object to a string, add this to your $.ajax call:

processData: false,
contentType: false

it occurs sometime when jquery internally not serialize data correctly data to fix it add this.

cache : false,
dataType    : 'json',
processData : false,

I have solved the issue just by adding following these:

contentType: false,
processData: false,
cache: false,