使用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 相关文章推荐
添加JavaScript重载函数的辅助方法2
Jul 04 Javascript
Javascript 中 null、NaN和undefined的区别总结
Apr 10 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
Feb 03 Javascript
js eval函数使用,js对象和字符串互转实例
Mar 06 Javascript
Vue.js 2.0中select级联下拉框实例
Mar 06 Javascript
js 中rewrap-ajax.js插件实例代码
Oct 20 Javascript
js实现数组内数据的上移和下移的实例
Nov 14 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
Dec 25 jQuery
node.js环境搭建图文详解
Sep 19 Javascript
如何用Node写页面爬虫的工具集
Oct 26 Javascript
微信小程序实现评论功能
Nov 28 Javascript
vue实现随机验证码功能的实例代码
Apr 30 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 攻击方法之谈php+mysql注射语句构造
2009/10/30 PHP
处理php自动反斜杠的函数代码
2010/01/05 PHP
PHP set_time_limit(0)长连接的实现分析
2010/03/02 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
javascript实现添加附件功能的方法
2015/11/18 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python调用shell的方法
2013/11/20 Python
python 远程统计文件代码分享
2015/05/14 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
python实现装饰器、描述符
2018/02/28 Python
python绘制圆柱体的方法
2018/07/02 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
python 随机森林算法及其优化详解
2019/07/11 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
使用Python发现隐藏的wifi
2020/03/04 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
用python制作个音乐下载器
2021/01/30 Python
大学毕业生通用求职信
2013/09/28 职场文书
九年级数学教学反思
2014/02/02 职场文书
《尊严》教学反思
2014/02/11 职场文书
化妆品活动策划方案
2014/05/23 职场文书
法制宣传口号
2014/06/16 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
创作书写之导游词实用技巧分享(干货)
2019/12/20 职场文书