使用axios请求接口,几种content-type的区别详解


Posted in Javascript onOctober 29, 2019

axios的使用

安装(一般使用框架的话, 脚手架都集成了)

$ npm install axios

请求示例

// POST
axios.post('/user', {
 firstName: 'Fred',
 lastName: 'Flintstone'
 })
 .then(function (response) {
 console.log(response);
 })
 .catch(function (error) {
 console.log(error);
 });
// GET
axios.get('/user', {
 params: {
  ID: 12345
 }
 })
 .then(function (response) {
 console.log(response);
 })
 .catch(function (error) {
 console.log(error);
 });
// 执行多个并发
axios.all([get1(), get2()])
 .then(axios.spread(function (acct, perms) {
 // 两个请求现在都执行完成
 }));

可以通过向 axios 传递相关配置来创建请求

语法: axios(config)

axios({
 method: 'post',
 url: '/user/12345',
 data: {
 firstName: 'Fred',
 lastName: 'Flintstone'
 }
});

这里, 我就拿以POST的方式传递相关配置来说事, 因为笔者在这里躺了两次坑, 很有必要记录一下, 哈哈.

默认情况下, 不写content-type, 是以json的方式来传递, (Content-Type: application/json;charset=UTF-8)

axios({
 url:'/api/connect/token',
 method: 'post',
 data: {
   firstName: 'Fred',
   lastName: 'Flintstone'
  }
 }).then(res => {
  console.log(1234, res.data)
 }).catch(error => {
  console.log(error)
 })

Headers如下:

Request Payload
{ firstName: "Fred", lastName: "Flintstone"}

content-type改成x-www-form-urlencoded, 即表单提交方式

axios({
 url:'/api/connect/token',
 method: 'post',
 data: {
   firstName: 'Fred',
   lastName: 'Flintstone'
  },
 headers: {
   'Content-type': 'application/x-www-form-urlencoded'
  }
 }).then(res => {
  console.log(1234, res.data)
 }).catch(error => {
  console.log(error)
 })

Headers如下:

Form Data
{"firstName":"Fred","lastName":"Flintstone"}:

另一种情况, 序列化成字符串形式传递

axios({
 url:'/api/connect/token',
 method: 'post',
 data: JSON.stringify({
   firstName: 'Fred',
   lastName: 'Flintstone'
  })
 }).then(res => {
  console.log(1234, res.data)
 }).catch(error => {
  console.log(error)
 })

结果跟上面一致:

Form Data
{"firstName":"Fred","lastName":"Flintstone"}:

还有一种常见情况, 通过qs库对数据进行编码(前提要安装qs)

import qs from 'qs'
axios({
 url:'/api/connect/token',
 method: 'post',
 data: qs.stringify({
   firstName: 'Fred',
   lastName: 'Flintstone'
  })
 }).then(res => {
  console.log(1234, res.data)
 }).catch(error => {
  console.log(error)
 })

结果:

Request Headers
Content-Type: application/x-www-form-urlencoded
Form Data
firstName: Fred
lastName: Flintstone

使用qs要注意的点 :

allowDots(多层对象嵌套, 可用.标记)

qs.stringify({ 
 a: { 
  b: { 
   c: 'd', e: 'f' 
  } 
 } 
}, { allowDots: true });
// 'a.b.c=d&a.b.e=f'

以上这篇使用axios请求接口,几种content-type的区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS实现打开本地文件或文件夹
Mar 09 Javascript
js查找父节点的简单方法
Jun 28 Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
Feb 27 Javascript
三种取消选中单选框radio的方法
Sep 09 Javascript
javascript检查浏览器是否已经启用XX功能
Jul 10 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
Dec 03 Javascript
javascript 将共享属性迁移到原型中去的实现方法
Aug 31 Javascript
真正好用的js验证上传文件大小的简单方法
Oct 27 Javascript
bootstrap多种样式进度条展示
Dec 20 Javascript
教你5分钟学会用requirejs(必看篇)
Jul 25 Javascript
微信小程序实现漂亮的弹窗效果
May 26 Javascript
JS封装cavans多种滤镜组件
Feb 15 Javascript
vue+elementui 对话框取消 表单验证重置示例
Oct 29 #Javascript
vue实现路由监听和参数监听
Oct 29 #Javascript
基于axios 的responseType类型的设置方法
Oct 29 #Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
Oct 29 #Javascript
vue + elementUI实现省市县三级联动的方法示例
Oct 29 #Javascript
vue 强制组件重新渲染(重置)的两种方案
Oct 29 #Javascript
javascript实现简单打字游戏
Oct 29 #Javascript
You might like
PHP中英混合字符串截取函数代码
2011/07/17 PHP
PHP中的use关键字概述
2014/07/23 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
php blowfish加密解密算法
2016/07/02 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
学习jquery之一
2007/04/27 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
我的Node.js学习之路(一)
2014/07/06 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
jQuery简单实现tab选项卡切换效果
2016/06/20 Javascript
JS实现title标题栏文字不间断滚动显示效果
2016/09/07 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
React.Js添加与删除onScroll事件的方法详解
2017/11/03 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
详解Python中的strftime()方法的使用
2015/05/22 Python
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
django 消息框架 message使用详解
2019/07/22 Python
python+django+rest框架配置创建方法
2019/08/31 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
Django1.11配合uni-app发起微信支付的实现
2019/10/12 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
垃圾回收的优点和原理
2014/05/16 面试题
大三学生学年自我鉴定
2014/09/12 职场文书
2014年团工作总结
2014/11/27 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
Golang连接并操作MySQL
2022/04/14 MySQL