周大胖子 发表于 2019-4-4 16:53:34

AJAX 上传文件的注意事项

// 异步ajax 回调
      function doOneUp(lm_file,date)
      {

            var formData = new FormData();
            // 收文日期
                        formData.append('file',lm_file);   
            
                        $.ajax({
                url: indexUrl+"trademarks/pdfs",
                // url: 'http://localhost/public/index.php/home/te/t',
                                type: "POST",
                                data: formData,
                                /**
                                *必须false才会自动加上正确的Content-Type
                                */
                contentType: false,
                // headers:{'Content-Type':'application/json;charset=utf8',token : jwt},
                beforeSend:function(request){      //请求动画
                  request.setRequestHeader('token',jwt)
                },
                                /**
                                * 必须false才会避开jQuery对 formdata 的默认处理
                                * XMLHttpRequest会对 formdata 进行正确的处理
                                */
                                processData: false,
                                success: function (res) {
                  
                  console.log(res)
                  doAllUp()
                                },
                                error: function () {
                                        alert("上传失败!");

                                }
                        });       
      }

这就很有意思的一个坑【上述代码是正确的】

坑点现象|: 利用ajax 发送文件 ,如果加上请求头【单指在head 中添加token 】,则后台接收不到form-data 的文件
而换成 beforeSend:function(request){      
    request.setRequestHeader('token',jwt)
},
却可以。理由比较有意思 ;是因为 传输文件所使用的http 协议不一样

页: [1]
查看完整版本: AJAX 上传文件的注意事项