当前位置: 首页 > 编程笔记 >

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

梁楷
2023-03-14
本文向大家介绍详解解决使用axios发送json后台接收不到的问题,包括了详解解决使用axios发送json后台接收不到的问题的使用技巧和注意事项,需要的朋友参考一下

问题描述

按照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;
    });
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍解决angular的post请求后SpringMVC后台接收不到参数值问题的方法,包括了解决angular的post请求后SpringMVC后台接收不到参数值问题的方法的使用技巧和注意事项,需要的朋友参考一下 这是我后台SpringMVC控制器接收isform参数的方法,只是简单的打出它的值: 前台页面发送一个post提交表单的请求 发现后台没有取到值 后边我想到的第一种方案是在控制

  • 本文向大家介绍详解解决jupyter不能使用pytorch的问题,包括了详解解决jupyter不能使用pytorch的问题的使用技巧和注意事项,需要的朋友参考一下 问题: 昨天在使用jupyter时,发现pytorch又不能用了,之前用了很久的时间安装上,最近一直在用pycharm,转而用jupyter时,发现又开始像之前一样报错,提示:no module named ‘torch'。 尝试各种方

  • 本文向大家介绍Vue.js实战之使用Vuex + axios发送请求详解,包括了Vue.js实战之使用Vuex + axios发送请求详解的使用技巧和注意事项,需要的朋友参考一下 前言 Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource 目前主流的 Vue 项目,都选择 axios 来完成 aja

  • 本文向大家介绍vue-socket.io接收不到数据问题的解决方法,包括了vue-socket.io接收不到数据问题的解决方法的使用技巧和注意事项,需要的朋友参考一下 最近公司的一个vue项目用到了vue-socket.io来处理socket数据传输,之前用过socket.io-client,现在知道vue-socket.io是基于socket.io-client的一层封装,将socket挂于全局

  • 本文向大家介绍Python中使用socket发送HTTP请求数据接收不完整问题解决方法,包括了Python中使用socket发送HTTP请求数据接收不完整问题解决方法的使用技巧和注意事项,需要的朋友参考一下 由于工作的需求,需要用python做一个类似网络爬虫的采集器。虽然Python的urllib模块提供更加方便简洁操作,但是涉及到一些底层的需求,如手动设定User-Agent,Referer等

  • 本文向大家介绍Django后台admin的使用详解,包括了Django后台admin的使用详解的使用技巧和注意事项,需要的朋友参考一下 简述: Django的admin可以提供一个强大的后台管理功能,可以在web界面对数据库进行操作,我们需要修改admin.py将要操作的数据表注册到后台管理中 创建数据表: 为了便于演示,我们在models.py中创建一张img数据表规则 图中 verbo_nam