axios使用步骤详解(附代码)

这次给大家带来axios使用步骤详解(附代码),使用axios的注意事项有哪些,下面就是实战案例,一起来看一下。

Axios是一个基于Promise的 HTTP 库,可以用在浏览器和node.js 中,因为尤大大的推荐,axios也变得越来越流行。最近项目中使用axios也遇到了一些问题,就借此机会总结一下,如有错误,还请不吝指正。

功能

浏览器端发起XMLHttpRequests请求

node层发起http请求

支持Promise API

拦截请求和响应

转换请求和响应数据

取消请求

自动转换JSON数据

客户端支持防御XSRF(跨站请求伪造)

npm
npm install axios

bower
bower install axios

cdn

发起请求

GET

axios.get('/user?ID=123')  .then( res => {    console.info(res)  }).catch( e => {    if(e.response){    //请求已发出,服务器返回状态码不是2xx。      console.info(e.response.data)      console.info(e.response.status)      console.info(e.response.headers)    }else if(e.request){      // 请求已发出,但没有收到响应      // e.request 在浏览器里是一个XMLHttpRequest实例,      // 在node中是一个http.ClientRequest实例      console.info(e.request)    }else{      //发送请求时异常,捕捉到错误      console.info('error',e.message)    }    console.info(e.config)  })// 等同以下写法axios({  url: '/user',   method: 'GET',  params: {    ID: 123  }}).then( res => {  console.info(res)}).catch( e=> {  console.info(e)})

登录后复制

POST

axios.post('/user', {  firstName: 'Mike',  lastName: 'Allen'}).then( res => {  console.info(res)}).catch( e => {  console.info(e)})// 等同以下写法axios({  url: '/user',  method: 'POST',  data: {    firstName: 'Mike',    lastName: 'Allen'  }}).then( res => {  console.info(res)}).catch( e => {  console.info(e)})

登录后复制

注意事项

在使用GET方法传递参数时使用的是params,并且官方文档中介绍为:params are the URL parameters to be sent with the request. Must be a plain object or a URLSearchParams object。译为:params作为URL链接中的参数发送请求,且其必须是一个plain object或者是URLSearchParams object。plain object(纯对象)是指用JSON形式定义的普通对象或者new Object()创建的简单对象;而URLSearchParams object指的是一个可以由URLSearchParams接口定义的一些实用方法来处理 URL 的查询字符串的对象,也就是说params传参是以/user?ID=1&name=mike&sex=male形式传递的。

而在使用POST时对应的传参使用的是data,data是作为请求体发送的,同样使用这种形式的还有PUT,PATCH等请求方式。有一点需要注意的是,axios中POST的默认请求体类型为Content-Type:application/json(JSON规范流行),这也是最常见的请求体类型,也就是说使用的是序列化后的json格式字符串来传递参数,如:{ “name” : “mike”, “sex” : “male” };同时,后台必须要以支持@RequestBody的形式接收参数,否则会出现前台传参正确,后台接收不到的情况。

如果想要设置类型为Content-Type:application/x-www-form-urlencoded(浏览器原生支持),axios提供了两种方式,如下:

浏览器端

const params = new URLSearchParams();params.append('param1', 'value1');params.append('param2', 'value2');axios.post('/user', params);

登录后复制

不过,并不是所有浏览器都支持URLSearchParams,兼容性查询caniuse.com,但是这里有一个Polyfill (polyfill:用于实现浏览器并不支持的原生API的代码,可以模糊理解为补丁,同时要确保polyfill在全局环境中)。

或者,你也可以用qs这个库来格式化数据。默认情况下在安装完axios后就可以使用qs库。

const qs = require('qs');axios.post('/user', qs.stringify({'name':'mike'}));

登录后复制

node层

在node环境中可以使用querystring。同样,也可以用qs来格式化数据。

const querystring = require('querystring');axios.post('http://something.com/', querystring.stringify({'name':'mike'}));

登录后复制

补充

常见的请求体类型还有一种方式,即multipart/form-data(浏览器原生支持),也就是提交表单数据常用的一种格式。和x-www-form-urlencoded对比起来,后者则是数据被编码成以 ‘&’ 分隔的键-值对, 同时以 ‘=’ 分隔键和值。非字母或数字的字符会被Percent-encoding(URL encoding),这也就是为什么这种类型不支持二进制数据的原因 (应使用 multipart/form-data 代替)。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

Angular4输入与输出怎么使用

在微信小程序里添加弹出对话框

以上就是axios使用步骤详解(附代码)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2772348.html

(0)
上一篇 2025年3月8日 13:15:05
下一篇 2025年3月8日 13:15:56

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • gulp安装+打包+合并最详解

    这次给大家带来gulp安装+打包+合并最详解,使用gulp安装+打包+合并的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发…

    编程技术 2025年3月8日
    200
  • Emergence.js插件的使用详解

    这次给大家带来Emergence.js插件的使用详解,Emergence.js插件使用的注意事项有哪些,下面就是实战案例,一起来看一下。 Emergence.js 是一个轻量级,高性能的 JS 插件,用于检测和操作浏览器中的元素。 这个插件…

    编程技术 2025年3月8日
    200
  • 如何在java程序中运行js的代码分享

    本篇文章给大家分享的内容是如何在java程序中运行js的代码分享,有着一定的参考价值,有需要的朋友可以参考一下 1.6版本中增加了scriptengine可以直接运行js代码 1、直接写js代码 import javax.script.Sc…

    编程技术 2025年3月8日
    200
  • Vue2.0设置全局样式步奏详解

    这次给大家带来Vue2.0设置全局样式步奏详解,Vue2.0设置全局样式的步奏详解的注意事项有哪些,下面就是实战案例,一起来看一下。 为Vue设置全局样式需要几个步骤(如果是sass将less改成sass即可) 第一步:在src目录下的ma…

    编程技术 2025年3月8日
    200
  • Node的模块系统使用详解

    这次给大家带来Node的模块系统使用详解,Node模块系统使用的注意事项有哪些,下面就是实战案例,一起来看一下。 模块是构建应用程序的基础,也使得函数和变量私有化,不直接对外暴露出来,接下来我们就要介绍Node的模块化系统和它最常用的模式 …

    编程技术 2025年3月8日
    200
  • 在ES6里模板字符串使用详解

    这次给大家带来在ES6里模板字符串使用详解,在ES6里模板字符串使用的注意事项有哪些,下面就是实战案例,一起来看一下。 写在前面 关于 ES6, 也终于在 2015 年的 7 月 18 号尘埃落定了。虽然说各大浏览器还没有全面的支持,不过这…

    编程技术 2025年3月8日
    200
  • vue中SPA单页面应用程序详解

    这次给大家带来vue中SPA单页面应用程序详解,使用vue中SPA单页面应用程序的注意事项有哪些,下面就是实战案例,一起来看一下。 一、SPA的概述 SPA(single page application)单页面应用程序,在一个完成的应用或…

    编程技术 2025年3月8日
    200
  • angular组件间传值与通信使用详解

    这次给大家带来angular组件间传值与通信使用详解,angular组件间传值与通信的注意事项有哪些,下面就是实战案例,一起来看一下。 本文主要介绍angular在不同的组件中如何进行传值,如何通讯。主要分为父子组件和非父子组件部分。 父子…

    编程技术 2025年3月8日
    200
  • Vue全家桶项目实践详解

    这次给大家带来Vue全家桶项目实践详解,使用Vue全家桶实现项目的注意事项有哪些,下面就是实战案例,一起来看一下。 从前端的角度看,Vue可以说是目前最理想的前端MVVM框架,一切为界面服务,上手难度低,本文就将记录使用Vue全家桶(Vue…

    编程技术 2025年3月8日
    200
  • vue.js+todolist的代码使用

    这次给大家带来vue.js+todolist的代码使用,vue.js+todolist代码使用的注意事项有哪些,下面就是实战案例,一起来看一下。 案例知识点: 1.vue.js基础知识 2.HTML5 本地存储localstorage st…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论