老莫的笔记本  
  
查看: 1087|回复: 0

AJAX 上传文件的注意事项

[复制链接]

664

主题

880

帖子

5155

积分

超级版主

Rank: 8Rank: 8

积分
5155
发表于 2019-4-4 16:53:34 | 显示全部楼层 |阅读模式
  1.   // 异步ajax 回调
  2.         function doOneUp(lm_file,date)
  3.         {

  4.             var formData = new FormData();
  5.             // 收文日期
  6.                         formData.append('file',lm_file);   
  7.             
  8.                         $.ajax({
  9.                 url: indexUrl+"trademarks/pdfs",
  10.                 // url: 'http://localhost/public/index.php/home/te/t',
  11.                                 type: "POST",
  12.                                 data: formData,
  13.                                 /**
  14.                                 *必须false才会自动加上正确的Content-Type
  15.                                 */
  16.                 contentType: false,
  17.                 // headers:{'Content-Type':'application/json;charset=utf8',token : jwt},
  18.                 beforeSend:function(request){        //请求动画
  19.                     request.setRequestHeader('token',jwt)
  20.                 },
  21.                                 /**
  22.                                 * 必须false才会避开jQuery对 formdata 的默认处理
  23.                                 * XMLHttpRequest会对 formdata 进行正确的处理
  24.                                 */
  25.                                 processData: false,
  26.                                 success: function (res) {
  27.                     
  28.                     console.log(res)
  29.                     doAllUp()
  30.                                 },
  31.                                 error: function () {
  32.                                         alert("上传失败!");

  33.                                 }
  34.                         });       
  35.         }
复制代码


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

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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表