STUNUM

面有萌色,胸有丘壑。心有猛虎,细嗅蔷薇。

嗨,我是王鑫 (@stunum),一名 Python 开发者。


Python web开发,后端以Django框架为主,前端使用Vue.js...

axios

Axios

基于promise用于浏览器和node.js的http客户端

特点

  • 支持浏览器和node.js
  • 支持promise
  • 能拦截请求和响应
  • 能转换请求和响应数据
  • 能取消请求
  • 自动转换JSON数据
  • 浏览器端支持防止CSRF(跨站请求伪造)

安装

使用 npm:

$ npm install axios
请求方法:
  • axios.request(config)
  • axios.get(url[, config])
  • axios.delete(url[, config])
  • axios.head(url[, config])
  • axios.post(url[, data[, config]])
  • axios.put(url[, data[, config]])
  • axios.patch(url[, data[, config]])

举例

执行 GET 请求
//url直接拼接
axios.get('/user?ID=12345')
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

// 可选地,上面的请求可以这样做
// 传递参数,
axios.get('/user', {
    params: {
      ID: 12345
    }
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });
执行 POST 请求
axios.post('/user', {
    firstName: 'Fred',
    lastName: 'Flintstone'
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });
执行并发请求
function getUserAccount() {
  return axios.get('/user/12345');
}

function getUserPermissions() {
  return axios.get('/user/12345/permissions');
}

axios.all([getUserAccount(), getUserPermissions()])
  .then(axios.spread(function (acct, perms) {
    // 两个请求现在都执行完成
  }));

拦截器

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

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    return response;
  }, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  });

更多内容请移步: axios中文文档

最近的文章

node.js的多版本管理器——nvm

快捷安装nvm的两种方法//使用curlcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash//或者使用wgetwget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bashnvm的使用方法Usage: nvm --help ...…

水滴石穿继续阅读
更早的文章

优化Mac上的iTerm2

MacOS自带的Terminal在功能上不够强大,一般都会用iTerm2来替代。但是iTerm2还是有许多可以优化的地方!!zsh主要功能有 命令高亮 (识别 命令 正确性) 拓展性高 支持 命令补全安装#安装xcode Command Line Tools 如果已安装则逃过这步$ xcode-select --install $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/i...…

奇技淫巧继续阅读