【发布时间】:2012-09-27 04:22:07
【问题描述】:
我正在使用这个脚本来上传我的图片文件:http://jsfiddle.net/eHmSr/
$('.uploader input:file').on('change', function() {
$this = $(this);
$('.alert').remove();
$.each($this[0].files, function(key, file) {
$('.files').append('<li>' + file.name + '</li>');
data = new FormData();
data.append(file.name, file);
$.ajax({
url: $('.uploader').attr('action'),
type: 'POST',
dataType: 'json',
data: data
});
});
});
但是当我点击上传按钮时,JavaScript 控制台返回此错误:
Uncaught TypeError: Illegal invocation
你能帮帮我吗?
【问题讨论】:
-
你确定吗?
dataType: 'json',??? -
是的,网址会以这种格式返回。
-
在我的例子中,我想将一个文件作为更大数据集的一部分提交给 .NET MVC 控制器,该控制器接受一个序列化对象作为其操作的参数。正如lilalinux 所建议的那样,有必要使用一个FormData 对象,以及Blender 所建议的
processData: false,正如Caio Tarifa 所建议的那样,还有contentType: false所建议的那样。任何小于所有三个的东西都不起作用。见[这个答案](stackoverflow.com/a/3