使用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实现网页倒计时、网站已运行时间功能的代码3例
Apr 14 Javascript
一个JavaScript操作元素定位元素的实例
Oct 29 Javascript
angularJS中router的使用指南
Feb 09 Javascript
谈谈target=_new和_blank的不同之处
Oct 25 Javascript
详解Node中导入模块require和import的区别
Aug 11 Javascript
浅谈JavaScript find 方法不支持IE的问题
Sep 28 Javascript
vue系列之requireJs中引入vue-router的方法
Jul 18 Javascript
如何用Node写页面爬虫的工具集
Oct 26 Javascript
vue-router跳转时打开新页面的两种方法
Jul 29 Javascript
JavaScript浅层克隆与深度克隆示例详解
Sep 01 Javascript
JavaScript枚举选择jquery插件代码实例
Nov 17 jQuery
微信小程序视频弹幕发送功能的实现
Dec 28 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输出Excel文件类
2010/02/08 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
showModelessDialog()使用详解
2006/09/07 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
js工具方法弹出蒙版
2013/05/08 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
详细分析jsonp的原理和实现方式
2017/11/20 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
2018/03/10 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
JS的函数调用栈stack size的计算方法
2018/06/24 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
JS中的算法与数据结构之列表(List)实例详解
2019/08/16 Javascript
jQuery操作元素的内容和样式完整实例分析
2020/01/10 jQuery
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
python处理圆角图片、圆形图片的例子
2014/04/25 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
Tkinter中复选菜单是否被选中的判断与设置方式
2020/03/04 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
快速实现一个简单的canvas迷宫游戏的示例
2018/07/04 HTML / CSS
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
shell程序中如何注释
2012/02/17 面试题
初中女生自我鉴定
2013/12/19 职场文书
青年创业培训欢迎词
2014/01/08 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
教师节寄语2015
2015/03/23 职场文书
表扬信格式模板
2015/05/05 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers