qs 与axios

const qs = require("qs");
//qs.parse()将URL解析成对象的形式
let url =
  "method=query_sql_dataset_data&projectId=85&appToken=7d22e38e-5717-11e7-907b-a6006ad3dba0";
qs.parse(url);
console.log(qs.parse(url));
//qs.stringify()将对象 序列化成URL的形式,以&进行拼接
let obj = {
  method: "query_sql_dataset_data",
  projectId: "85",
  appToken: "7d22e38e-5717-11e7-907b-a6006ad3dba0",
  datasetId: " 12564701"
};
qs.stringify(obj);
console.log(qs.stringify(obj));
打印结果

{ method: 'query_sql_dataset_data',
projectId: '85',
appToken: '7d22e38e-5717-11e7-907b-a6006ad3dba0' }
method=query_sql_dataset_data&projectId=85&appToken=7d22e38e-5717-11e7-907b-a6006ad3dba0&datasetId=%2012564701

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

axios拦截器

//添加请求拦截器
axios.interceptors.request.use(config => {
  const { method, data } = config;
  if (method.toUpperCase() === "POST" && data instanceof Object) {
    config.data = qs.stringify(data);
  }
  return config;
});
//添加响应拦截器
axios.interceptors.response.use(
  response => {
    return response.data;
  },
  error => {
    alert("请求移仓");
    console.log(error);
    //终端promise列
    return new Promise(() => {});
  }
);
目的:
处理post请求是,会转化为urlencode格式(默认是json格式)请求拦截器
 让成功的结果不是response 而是response.data,相应拦截器的失败回调
 
posted @ 2020-03-12 17:55  小北,,,,小南  阅读(349)  评论(0)    收藏  举报