vuewebupload怎么添加请求头部内容

vuewebupload怎么添加请求头部内容,第1张

vuewebupload怎么添加请求头部内容,最近接手了一个重构前端页面的项目, 后台只提供api接口, 需要使用前端的vue框架中的Upload进行上传文件, 并携带两个参数, 同时还需要在请求头中设置userId

查找了很多资料, 使用原生的上传也是可以的 , 只是之前没有注意到userId这事, 导致发送请求时总是报错500(internal server error)

在这里插入图片描述

接下来看一下如何使用Upload标签实现点击/拖拽上传

如何携带参数, 如何设置headers

<template>

<div>

<Row>

<Col>

<Upload

multiple

type="drag"

:data="submitData"

:headers="upHeaders"

action="/api/cs-dzjf-soa/api/v1/file/upload"

>

<div style="padding: 20px 0">

<Icon type="ios-cloud-upload" size="52" style="color: #3399ff"></Icon>

<p>点击或拖拽到此处上传</p>

</div>

</Upload>

</Col>

</Row>

</div>

</template>

<script>

import axios from "axios"

export default {

components: {},

name: "first",

data() {

return {

submitData: { // 这里是需要携带的数据

srcLanguage: "en",

tgtLanguage: "zh"

},

upHeaders: { // 这里设置的是请求头中的userId, 用于鉴权的

"userId": "fffffffffffffffffffffffffff"

}

}

},

}

</script>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

效果图如下

在这里插入图片描述

Upload标签中配置的:data就是用于携带参数的, :headers是用于携带头信息的, 请求的url地址中开头位置的api是用于解决跨域的, 具体如何在前端解决跨域参考 前端解决跨域

**这里在headers中不需要配置Content-Type: multipart/form-data, 多此一举

后期补充的问题:

Upload中默认上传时的格式是

file: (binary)

1

1

这里现在使用的后台接口中, 用于接收上传文件的字段是是data, 那么这时候就需要在前台修改一下Upload默认的键名, 百度一番之后, 无果, 决定找一下源码看看, 源码也没找到有用的信息, 在一个github项目上找到了点信息

github地址

在这里插入图片描述

看到这句话 是不是觉得好像有点对症呢???没错, 就是这里可以设置

在这里插入图片描述

在这配置上name属性之后, 我们重新上传一下文件试试

现在已经成功的修改了

全局的请求进度条,我们可以使用nprogress来实现,效果如下:

首先需要安装插件:

npm i nprogress -S

然后使用的时候主要有两种方式,第一种是切换页面的时候,第二种则是请求接口的时候。

切换页面可以在入口文件添加如下代码:

import NProgress from 'nprogress' // 引入nprogress插件

import 'nprogress/nprogress.css' // 这个nprogress样式必须引入

router.beforeEach((to, from, next) =>{

NProgress.start()

next()

})

router.afterEach(() =>{

NProgress.done()

})

接口请求的时候,则是在axios拦截器处进行处理,直接上代码:

// axios请求拦截器

axios.interceptors.request.use(

config =>{

NProgress.start() // 设置加载进度条(开始..)

return config

},

error =>{

return Promise.reject(error)

}

)

// axios响应拦截器

axios.interceptors.response.use(

function(response) {

NProgress.done() // 设置加载进度条(结束..)

return response

},

function(error) {

return Promise.reject(error)

}

)

当然也可以对进度条进行样式自定义

#nprogress .bar {

background: red !important//自定义颜色

}

。。。。。。。。。。。。。

作者:MonkeySoft

篇幅有限更多请见扩展链接:http://www.mark-to-win.com/tutorial/50674.html


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11876773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存