当前位置: 首页 > news >正文

杭州网站建设网络公司广州有什么好玩的室内

杭州网站建设网络公司,广州有什么好玩的室内,seo优化实训内容,江苏省现代化示范校建设网站1. 创建实例 使用 axios.create() 使用自定义配置创建一个 axios 实例。 const $http axios.create({timeout: 1000,headers: {Content-Type: application/json,} })2. 拦截器 在请求或响应被 then 或者 catch 处理前拦截他们,拦截分为请求拦截和响应拦截。 //…

1. 创建实例

使用 axios.create() 使用自定义配置创建一个 axios 实例。

const $http = axios.create({timeout: 1000,headers: {'Content-Type': 'application/json',}
})

2. 拦截器

在请求或响应被 then 或者 catch 处理前拦截他们,拦截分为请求拦截和响应拦截。

// 添加请求拦截器
$http.interceptors.request.use(function (config) {// 在发送请求之前做些什么return config;}, function (error) {// 对请求错误做些什么return Promise.reject(error);});// 添加响应拦截器
$http.interceptors.response.use(function (response) {// 对响应数据做点什么return response;}, function (error) {// 对响应错误做点什么return Promise.reject(error);});

2.1 request 拦截器,全局添加市场信息

$http.interceptors.request.use(config => {......// 市场编码if (config.data && Object.prototype.toString.call(config.data) === '[object Object]' && typeof config.data !== 'string') {if (!config.data.removeMarketCode) {const market = store.state.common.market || {}config.data.marketId = market.keyconfig.data.marketName = market.val} else {delete config.data.removeMarketCode}}return config
}, error => {// Do something with request errorPromise.reject(error)
})
  • removeMarketCode 是否移除市场信息,默认不移除;

根据上述代码可以看到,市场信息都是默认添加在 config.data 对象中下的,如果我们需要调整传参对象的位置时,那需要更改上述逻辑,具体代码如下:

if (!config.data.removeMarketCode) {// 指定 data 下某个路径const key = config.data?.targetconst market = store.state.common.market || {}const marketObj = { marketId: market.key, marketName: market.val }if (key) {config.data[key] = { ...config.data[key], ...marketObj }delete config.data.target} else {config.data = { ...config.data, ...marketObj }}
} else {delete config.data.removeMarketCode
}

使用如下:

class BillManage {export (params) {return axios.post(URL.receivePayBill.export, { ...params, target: 'condition' })}
}
export default new BillManage()// 实际传参
{ "columns": [...], "condition": { "isPay": false, "marketId": "000", "marketName": "白糖" } }

2.2 response 拦截器

通过响应拦截器我们用来处理响应异常的接口进行拦截提示,返回对象中会返回一个 succeed 字段来表示接口处理正常还是异常情况,当然也有可能直接返回文件流,因此这里使用的 ‘succeed’ in res 的写法来表示 res 中是否存在 succeed 的 key 来代替 res.succeed。

// response 拦截器
$http.interceptors.response.use(response => {......const res = response.dataif ('succeed' in res && res.succeed !== true) {notification.error({message: 'Error',description: res.errorMsg,})return Promise.reject(new Error(res.errorMsg || 'error'))} else {return response.data}},error => {return Promise.reject(error)}
)

导出文件里处理如下:

class ReceivePayAccountManage {// 下载模板payOrderImportTmpl (params) {return axios.post(URL.receivePayOrder.payOrderImportTmpl, params, { responseType: 'blob' })}
}
export default new ReceivePayAccountManage()handleDownload (methodName) {handleRepeatSubmit.call(this, null, () => config.methods[methodName].handler(), (data) => downloadPDF('应付单导入模板.xlsx', data))
},

downloadPDF 方法传入文件名和文件流,下载文件信息处理,具体代码如下:

export const downloadPDF = function (fileName, blob) {const downloadElement = document.createElement('a')const href = window.URL.createObjectURL(blob)downloadElement.href = hrefdownloadElement.download = fileNamedocument.body.appendChild(downloadElement)downloadElement.click()document.body.removeChild(downloadElement)window.URL.revokeObjectURL(href)
}
http://www.yayakq.cn/news/267043/

相关文章:

  • 衣服搭配网站建设大连模板做网站
  • 一般网站推广要多少钱空气炸锅做糕点的网站
  • 易尔通做网站怎么样企业做网站的注意什么
  • 一个网站可以设多少关键词单页销售网站源码
  • 地方网站改版方案企业oa系统是什么
  • 10个网站用户体验优化的研究结果网站建设视屏教程
  • 陈塘庄网站建设电子商务网站建设课程设计报告
  • 做网站漯河江苏做网站公司有哪些
  • 网站模板免费推荐米拓建设网站
  • 做通路富集分析的网站个人网站的内容
  • 网站二级菜单是什么原因福州++网站建设
  • 制作表白网站的软件成都房地产市场分析
  • 桂城网站建设做网站win7好用么
  • 协助别人做网站犯法么dw网页制作表单
  • 免费下载建筑图集规范的网站中文域名网站标识
  • 济南美赞网站建设公司买虚机送网站建设
  • 获取网站访问者qq号做网站用什么域名好
  • 比较出名的wordpress网站手机网站和app有什么区别
  • 网站域名哪里买wordpress 文章状态
  • 妇幼能力建设网站交通银行网站开发
  • 北京SEO网站优化公司孙力军
  • 长治制作公司网站的公司网站建设如何投放广告
  • 湖北省两学一做网站企业征信网上查询系统官网
  • net大规模网站开发视频旅游网站建设外现状
  • 网站制作视频教程全龙岗建设招标局网站
  • 电脑在哪网站接做扇子单工程平台公司做什么的
  • 图书馆网站建设公司开发一个跑腿app需要多少钱
  • 西安哪里找做网站公司企业自助建站软件
  • 千图主站的功能介绍优化服务公司
  • 网站开发的技术意义网站前台