Nodejs request 请求库默认值以及全局请求拦截设置

自己记录 不喜勿喷

import request from 'request'

var j = request.jar();
var localStorageCookie = localStorage.getItem('cookie')


if(localStorageCookie){
  localStorageCookie = JSON.parse(localStorageCookie)
  console.log('历史cookie:',localStorageCookie)
  localStorageCookie.cookies.map(it=>{
    j._jar.setCookieSync(it.key+'='+it.value,'https://***.***.cn'+it.path)
  })
}

function parseBody(body) {
  var out;
  if (typeof body == 'string') {
    try {
      out = JSON.parse(body)
    } catch (err) {
      out = body;
    }
  } else {
    return body;
  }

  return out;
}

Vue.prototype.$request = request.defaults({
  jar: j,
  'proxy': 'http://127.0.0.1:8808',//代理
  timeout: 1000 * 15,
  baseUrl: 'https://**.***.cn',
  rejectUnauthorized: false,//忽略证书验证
  headers: {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36"
  }
}, function (target, callback) {
  if (/^http/.test(target.url)) {
    delete target.baseUrl;
  }
  console.log('请求--------->>>>', target.url)
  return request(target, function (err, res, body) {
    if (callback) {
      body = parseBody(body)
      callback.call(this, err, res, body)
    }
  }).on('end', () => {
    
    var cookie = j._jar.toJSON()
    
    localStorage.setItem('cookie', JSON.stringify(cookie))
  }).on('error', () => {
    // debugger
  })
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 家里来亲戚拜年,我忙着端茶倒水招呼客人,因为在饭店订的桌位,也不需要特别准备。下楼带客人去饭店,提了很多酒个饮料,...
    阿君姐阅读 258评论 0 2
  • 推开陈旧木门的一瞬间,就有一种震撼和心酸感在内心涌动。脚下是凹凸不平的土块,青苔上有灰白的霉点。土墙的缝隙里硬...
    街角斜阳阅读 163评论 0 0
  • “快点儿,你快点儿,人多了,二楼鸡蛋羹排不上队啦。”他的姑娘在前面开心地走着催促他。 在学校不远处实习,最方便的就...
    王王王豆豆紫荆阅读 499评论 2 6
  • 接着上一篇文章,继续说说付费产品究竟能给用户带来了什么。上篇的核心是说,付费产品可以给用户带来更优质的服务,或者可...
    小支支阅读 216评论 0 1
  • 中国文化进万家走进永清县禾润农业科技 本网讯(赵欣 钱城)3月29日,中国文化进万家工作委员会廊坊文化交流中心走进...
    时代文化阅读 384评论 0 1