Vue中axios调用网上接口用POST方式传参

简介: Vue中axios调用网上接口用POST方式传参

vue框架推荐使用axios来发送ajax请求,


解决方法:


1.qs模块是axios中自带的不需要下载,直接导入 解决问题的核心就是把参数转换成标准的键值对


var qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 }));

如果参数里面要传数组,查看官方文档发现,只需要在qs的方法中设置它的indices为false即可

qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false });

2.使用URLSearchParams传递参数


var params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('/foo', params);

后台可以获取到相应的键值对,但是使用这样的方法有两点坏处,第一个是前端请求每一个字段都append会很麻烦,第二个就是这个对象它不兼容IE和Edge甚至在360浏览器都会挂掉,我曾经尝试过IE11版本都不行,提示这个对象缺失。需要在后端做处理

req = json.loads(request.body)
req_userid = req['userid']
req_password = req['password']

最终使用qs简单方便


下面也是我自己

直接访问网上的接口会出现跨域问题,自己写的接口就不会,直接用nginx即可


先解决跨域问题,参考我这篇博客

Vue之Axios跨域问题解决方案

下面就是具体的一个获取数据的案例


<template></template>
<script>
export default {
  created() {
    this.getList();
  },
  methods: {
    getList() {
      var qs = require('qs');
      //传递参数
      this.axios.post("/service/getDeviceState",qs.stringify({"version":31,"sign":"c674b4c5e9e4"}))
        .then((response) => {
          console.log(response);
          console.log(response.data);
          console.log(response.data.code);
          // console.log(response.code)
          this.memberList = response.data.data;
        })
        .catch((error) => {
          console.log(error);
        });
    },
  },
};
</script>
<style>
</style>
相关文章
|
3天前
Vue3 跨组件传参 provide 与 inject
Vue3 跨组件传参 provide 与 inject
|
3天前
|
JavaScript
vue页面加载时同时请求两个接口
vue页面加载时同时请求两个接口
|
3天前
|
存储 JavaScript
Vue当前时间与接口返回时间的判断
Vue当前时间与接口返回时间的判断
14 0
|
3天前
|
JSON 前端开发 Java
前端axios传参总结
该文介绍了在前后端分离的开发中,前端使用axios向后端Spring传递参数的两种主要方法。针对@RequestParam注解,推荐使用params传参,将参数格式化为x-www-form-urlencoded,或者使用FormData和qs.stringify。对于@RequestBody,Axios的data传参默认为JSON格式,直接传入对象即可。
|
3天前
|
JavaScript Go
Vue路由跳转及路由传参
Vue路由跳转及路由传参
|
3天前
|
存储 算法 JavaScript
< 今日小技巧:Axios封装,接口请求增加防抖功能 >
今天这篇文章,主要是讲述对axios封装的请求,由于部分请求可能存在延时的情况。使得接口可能存在会被持续点击(即:接口未响应的时间内,被持续请求),导致重复请求的问题,容易降低前后端服务的性能!故提出给axios封装的配置里面,新增一个防抖函数,用来限制全局请求的防抖。
< 今日小技巧:Axios封装,接口请求增加防抖功能 >
|
3天前
|
JSON JavaScript 前端开发
< 每日份知识快餐:axios是什么?如何在Vue中 封装 axios ? >
本文介绍了前端开发中常用的HTTP客户端库Axios,它基于Promise,支持浏览器和Node.js,特点是功能强大、支持Promise API和并发请求,并能拦截请求和响应。文章强调了理解Axios的内部原理和优化使用的重要性,不仅讲解了基本的安装、导入和使用方法,还阐述了为何选择Axios,包括其丰富的配置选项和良好的浏览器支持。此外,文章探讨了封装Axios的必要性,以减少重复代码和提高代码维护性,并给出了设置接口请求前缀、请求头、超时时间以及封装请求方法和拦截器的示例。通过封装,开发者可以更高效地管理和使用Axios,适应不同项目需求。
|
3天前
|
JSON 前端开发 JavaScript
Vue+Axios+SpringBoot后端同时接收文件和json作为请求参数
Vue+Axios+SpringBoot后端同时接收文件和json作为请求参数
39 0
|
3天前
|
前端开发 应用服务中间件 nginx
Vue+SpringBoot+Axios的跨域问题
Vue+SpringBoot+Axios的跨域问题
21 0