详解解决使用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 相关文章推荐
javascript textContent与innerText的异同分析
Oct 22 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
Mar 08 Javascript
js触发select onchange事件的小技巧
Aug 05 Javascript
基于jquery编写的放大镜插件
Mar 23 Javascript
Bootstrap每天必学之附加导航(Affix)插件
Apr 25 Javascript
Javascript之深入浅出prototype
Feb 06 Javascript
Vue实现双向数据绑定
May 03 Javascript
JS请求servlet功能示例
Jun 01 Javascript
angular2路由切换改变页面title的示例代码
Aug 23 Javascript
js实时监控文本框输入字数的实例代码
Jan 18 Javascript
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
vue项目打包上传github并制作预览链接(pages)
Apr 19 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
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
2017/08/01 PHP
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
node.js中的fs.lstat方法使用说明
2014/12/16 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
用javascript实现自动输出网页文本
2015/07/30 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
2015/10/23 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
2017/02/18 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
webpack+express实现文件精确缓存的示例代码
2020/06/11 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
2015商场元旦促销活动策划方案
2014/12/09 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
我是特种兵观后感
2015/06/11 职场文书
小学数学教学随笔
2015/08/14 职场文书
创业计划书之网络外卖
2019/10/31 职场文书
canvas 中如何实现物体的框选
2022/08/05 Javascript