JQuery使用Ajax上传文件报错Uncaught TypeError:Illegal invocation的解决方法

当我们页面只有一个文件选择器 无需使用表单的时候
可以 new 一个 FormData() 来传输数据

//文件选择器事件
$('#file').change(function(){
    var file = $('#file')[0].files[0];
    var data = new FormData();

    data.append('uid',uid);
    data.append('file',file);

    $.ajax({
        url:'test.php',
        type:'POST',
        data:data,
        dataType:'json',
        cache:false,//上传文件不要缓存
        processData:false,//告诉JQuery不要去处理发送的数据
        contentType:false,//告诉JQuery不要去设置Content-Type请求头
        success:function(res){
            console.log(res);
            //成功后清空文件选择器,以防下次上传选择同样文件时不触发 .change() 事件
            $('#file').val('');
        },
        error:function(e){
            console.log(e);
        }

    });
    
});

风影OvO

风影OvO, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA 4.0协议进行授权 | 转载请注明原文链接

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐