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

海淀网站开发公司热门网站排名

海淀网站开发公司,热门网站排名,自己做网站什么类型的比较好,常用的设计网站有哪些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.wangmingla.cn/news/52807.html

相关文章:

  • 免费个人logo设计网站电脑培训学校课程
  • 武汉网站建设排名百度如何推广广告
  • 龙口网站制作网络seo关键词优化技巧
  • 网站建设你的选择百度公司的业务范围
  • 西部数码创建子网站分销平台
  • wordpress mysqladmin百度seo网络营销书
  • 商城网站开发教程三一crm手机客户端下载
  • 自己做网站 需要哪些太原百度公司地址
  • 做网站做app区别网络推广的途径有哪些
  • 网站开发中存在的问题域名注册腾讯云
  • 网络推广提成方案抖音搜索引擎优化
  • 写作网站大全解释seo网站推广
  • 营销赚钱网站seo优化操作
  • 北京电力交易中心 庞博重庆seo点击工具
  • 电脑公司网站模板下载自动搜索关键词软件
  • 犀牛网站建设上海好的网络推广公司
  • 施工企业破产质保湖南正规seo公司
  • 做 视频在线观看网站网络软文投放
  • 哪个网站专做进口商品的河南网站seo推广
  • c#网站开发工具新闻发稿软文推广
  • 网站制作-杭州上海网站关键词排名
  • 做网店好还是网站当日alexa排名查询统计
  • wordpress 版权seo是做什么的
  • 一起做网店网站官方抖音关键词搜索指数
  • WordPress幻灯片首页百度搜索引擎优化相关性评价
  • 以网站域名做邮箱网络项目推广平台
  • asp网站开发实验报告上海网站推广优化
  • 百度热线客服24小时百度seo价格
  • 网站设计排版布局成品视频直播软件推荐哪个好一点
  • 网站开发设计思想报告seo网络推广什么意思