vue文件以及图片上传的跨域(401)问题(组件使用的为element)

      本文主要是自己在做图片,文件上传时遇到的问题,由于后台是有token验证的,文件上传调取接口没有带有效的token,导致控制台一直报错,401跨域,

 

1:首先我们从element-ui组件库(https://element.eleme.cn/#/zh-CN/component/upload)copy上传组件:代码如下

<el-upload

class="upload-demo"

action="https://jsonplaceholder.typicode.com/posts/"

:on-preview="handlePreview"

:on-remove="handleRemove"

:before-remove="beforeRemove"

multiple

:limit="3"

:on-exceed="handleExceed"

:file-list="fileList">

<el-button size="small" type="primary">点击上传</el-button>

<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>

</el-upload>

<script>

export default {

data() {

return {

fileList: [{name: 'food.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}, {name: 'food2.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}]

};

},

methods: {

handleRemove(file, fileList) {

console.log(file, fileList);

},

handlePreview(file) {

console.log(file);

},

handleExceed(files, fileList) {

this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);

},

beforeRemove(file, fileList) {

return this.$confirm(`确定移除 ${ file.name }?`);

}

}

}

</script>

这里需要对上传组件总的几个参数做一个了解,详细可以看(https://element.eleme.cn/#/zh-CN/component/upload

主要参数

action:上传路径,后台对应的一定是一个文件保存的方法,返回参数最好多一点,(id,路径,名称等)

before-upload:上传之前做什么,这个一般都要加大小以及各式验证

on-success:上传成功做什么,一般都是把返回参数获取到,然后擦入到关联表

multiple:是否启用多个,

到这里如果后台没有做token验证,以上一个参数写对就完全可以完成附件上传功能了

 

如果后台有token验证,则需要在加上一个关键参数

headers(头部参数,设置上传的请求头部)

一般这里面需要放我们从后台获取的token,注意这个地方还有一个坑,就是这个token不能直接获取,共用js里面的token,而是需要用动态方法获取,类似下面

因为在共用方法里面获取一次后,当我们不去主动刷新的时候,这个token是不会变的,也就导致长时间不操作,同样会出现token失效。token是登录的时候进行token获取并且通过localStorage.setItem("token", vulue);}永久保存的

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值