Vue发送Get 和 Post 请求以及获取数据

Vue发送Get 和 Post 请求

注意以下代码是请求处理request.js

request.js

url:请求服务器路径;value:需要发送给服务器的数据;method:请求方式;options的使用:导出Excel
export(data) {
return request(‘export’, data, ‘post’, {
responseType: ‘blob’
})
}
export(data) {
return request(‘export’, data, ‘get’, {
responseType: ‘blob’
})
}

// 适配器, 用于适配不同的请求方式, 默认请求方式为post请求
export const baseRequest = (url, value = {
   }, method = 'post', options = {
   }) => {
   
    // 拼接请求后端服务器接口的完整路径
    url = sysConfig.API_URL + url
    console.log(url)
    // 对 post、get 等方式进行分别处理
    if (method === 'post') {
   
       return service.post(url, value, options)
    } else if (method === 'get') {
   
       return service.get(url, {
    params: value, ...options })
    } else if (method === 'formdata') {
   
       // form-data表单提交的方式
       return service.post(url, qs.stringify(value), {
   
          headers: {
   
             'Content-Type': 'multipart/form-data'
          },
          ...options
       })
    } else {
   
       // 其他请求方式,例如:put、delete
       return service({
   
          method: method,
          url: url,
          data: value,
          ...options
       })
    }
} 

const service = axios.create({
   
    baseURL: '/api', // api base_url
    timeout: sysConfig.TIMEOUT // 请求超时时间
})  

// HTTP response 拦截器
service.interceptors.response.use(
    (response) => {
   
       // 配置了blob,不处理直接返回文件流
       if (response.config.responseType === 'blob') {
   
          if (response.status === 200) {
   
             return response
          } else {
   
             message.warning('文件下载失败或此文件不存在')
             return
          }
       }
       const data = response.data
       const code = data.code
       if (reloadCodes.includes(code)) {
   
          if (!loginBack.value) {
   
             error()
          }
          return
       }
       if (code !== 200) {
   
          const customErrorMessage = response.config.customErrorMessage
          message.error(customErrorMessage || data.msg)
          return Promise.reject(data)
          // 自定义错误提示,覆盖后端返回的message
          // 使用示例:
          // export function customerList (data) {
   
          //   return request('list', data, 'get', {
   
          //     customErrorMessage: '自定义错误消息提示'
          //   });
          // }
       } else {
   
          // 统一成功提示
          const responseUrl = response.config.url
          // 如果访问路径包含(注意是包含,不是一定得是这个单词&#
  • 25
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值