美文网首页
在vue项目中使用element的Upload搭建上传功能,报跨

在vue项目中使用element的Upload搭建上传功能,报跨

作者: 韩小强 | 来源:发表于2019-05-08 16:24 被阅读0次
    • 根据官方提供实例
     <el-upload
       class="uploadHead"
       :action="logoUrl"
       with-credentials
       :show-file-list="false"
       :before-upload="beforeAvatarUpload"
       :http-request="myUpload"
       name="logo">
       <el-button size="small" type="primary">点击上传</el-button>
       </el-upload>
    ></el-cascader>
    

    开发前已使用cors解决项目跨域问题,
    !CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)
    项目中修改请求头header信息,向后台的发生非简单请求。非简单请求的CORS请求,会在正式通信之前,增加一次HTTP查询请求,称为"预检"请求(preflight),预检成功后发送数据请求。
    但是upload发送预检请求成功,第二次请求报跨域问题,后端人员也没有查找除问题。

    • 自定义封装请求(使用formDate)
    <el-upload
              class="uploadHead"
              :action="logoUrl"
              with-credentials
              :show-file-list="false"
              :before-upload="beforeAvatarUpload"
              :http-request="myUpload"
              name="logo">
              <el-button size="small" type="primary">点击上传</el-button>
            </el-upload>
    
    myUpload(content) {
            let formData = new FormData();
            formData.append('logo',content.file); // 'file[]' 代表数组 其中`file`是可变的
            request.post(content.action, formData).then(rs=>{
              this.$store.dispatch('GetInfo')
            }).catch(err=>{
              this.$store.dispatch('LogMessage', "用户头像上传失败!")
              console.log(err)
            })
          },
    

    自定义请求,把上传文件封装成formData对象,通过axois进行请求,运行成功!!!

    • 使用inoput自定义上传组件

    相关文章

      网友评论

          本文标题:在vue项目中使用element的Upload搭建上传功能,报跨

          本文链接:https://www.haomeiwen.com/subject/ojetwqtx.html