ajax上传图片

最近用node JS写了一个文件上传的案例,用到是ajax将文件数据传到后台,代码如下:

//    上传文件
    var myfile=$("#fileInput");
    $("#certainUpload").on("click",function(){
        var file=myfile[0].files[0];
        if(file==undefined){
            alert("文件为空!!!");
        }else{
            //创建FormData对象
            var data = new FormData();
            //为FormData对象添加数据
            data.append("file",file);
            //    路由到/upload
            $.ajax({
                type:"post",
                url:"/upload",
                async:false,
                data:data,
                dataType: 'JSON',
                success:function (data) {
                    if(data.result==1){
                        alert("上传成功!");
                    }else{
                        alert("上传失败");
                    }
                },
                error:function(data){
                }
            });
        }
    });

这似乎看起来没有什么错,但是上传不了文件。后来上网查了一下,加上以下三句话就可以了:

 cache: false,
 processData: false,
 contentType: false,
  • cache:有两个取值,分别问true和false,如果为true,则会读缓存,为false的话会在url后面加一个时间缀,让它跑到服务器获取结果。但是cache只有get请求才会生效。
  • processData:是否序列化data,如果为true,ajax提交数据就不会序列化数据;为false,则就会将数据序列化后提交给后台。
  • contentType:默认值为contentType = “application/x-www-form-urlencoded”,查看 Request headers,会发现还是有分界符,在 ajax 中 contentType 设置为 false 是为了避免 JQuery 对其操作,从而失去分界符,而使服务器不能正常解析文件。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值