详解解决使用axios发送json后台接收不到的问题


Posted in Javascript onJune 27, 2018

问题描述

按照axios官网例子发起请求传递json,后台接受到的数据为空,一直卡在options阶段。

尝试的方法

开始以为是接口有问题,使用postman测试下,一切正常,百思不得其解,看了好多issue也解决不了,加了headers:{'content-type':'application/json'}也没用。

官网上是说,传json就按application/json进行处理,然而并没有卵用;之后套了一层JSON.stringify(data)content-type又变成表单格式了==。

然后翻自己之前的代码,发现写法如出一辙,怀疑是版本号的问题,然而并不是==。。。。考虑到可能和服务端有关系。

原代码如下:

import axios from 'axios';

export default function request(url, params) {
  return axios.post(`xxxxxx/${url}`, params)
    .then((response) => {
      console.log('response', response);
      return response;
    })
    .catch((error) => {
      console.log('error', error);
      return error;
    });
}

最后想想还是用fetch吧(确实用了,发现还是有这个问题,现在深度怀疑是服务端将参数类型卡的太死了,还有polyfill的问题就放弃了,如果有知道的小伙伴请留言告诉我,谢谢),实在不行就ajax(还要封装成promise,哭)。出于对axios的坚持,终于找到了解决方法。

解决方法

就是添加qs库,将json序列化之后传递,详见这个issue。

代码:

import axios from 'axios';
import qs from 'qs';

export default function request(url, params) {
  return axios.post(`https://xxxxxxxx/${url}`, qs.stringify(params))
    .then((response) => {
      console.log('response', response);
      return response;
    })
    .catch((error) => {
      console.log('error', error);
      return error;
    });
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
prototype.js的Ajax对象
Sep 23 Javascript
javascript Prototype 对象扩展
May 15 Javascript
js每隔5分钟执行一次ajax请求的实现方法
Nov 27 Javascript
JS中实现简单Formatter函数示例代码
Aug 19 Javascript
jQuery事件绑定和委托实例
Nov 25 Javascript
js实现鼠标滑过文字链接色彩变化的效果
May 06 Javascript
node.js+express制作网页计算器
Jan 17 Javascript
Three.js实现绘制字体模型示例代码
Sep 26 Javascript
vuex 的简单使用
Mar 22 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
Sep 25 Javascript
js变量声明var使用与不使用的区别详解
Jan 21 Javascript
图文详解vue框架安装步骤
Feb 12 Javascript
vue中v-model的应用及使用详解
Jun 27 #Javascript
JS基于封装函数实现的表格分页完整示例
Jun 26 #Javascript
Vue实现todolist删除功能
Jun 26 #Javascript
AngularJS实现动态切换样式的方法分析
Jun 26 #Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
Jun 26 #Javascript
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 #jQuery
在vue中使用公共过滤器filter的方法
Jun 26 #Javascript
You might like
Zend引擎的发展 [15]
2006/10/09 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
解析php类的注册与自动加载
2013/07/05 PHP
PHP将进程作为守护进程的方法
2015/03/19 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
js字符编码函数区别分析
2008/06/05 Javascript
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
Angular的$http与$location
2016/12/26 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
JavaScrip关于创建常量的知识点
2017/12/07 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
Python3基础之输入和输出实例分析
2014/08/18 Python
使用SAE部署Python运行环境的教程
2015/05/05 Python
python实现内存监控系统
2021/03/07 Python
使用numba对Python运算加速的方法
2018/10/15 Python
Python魔法方法功能与用法简介
2019/04/04 Python
Django之模板层的实现代码
2019/09/09 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
地理教师岗位职责
2014/03/16 职场文书
会计学自荐信
2014/06/03 职场文书
公证委托书标准格式
2014/09/11 职场文书
高中生逃课检讨书
2014/10/10 职场文书
解决Python字典查找报Keyerror的问题
2021/05/26 Python