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月前
|
JavaScript
Vue中Axios网络请求封装-企业最常用封装模式
本教程介绍如何安装并配置 Axios 实例,包含请求与响应拦截器,实现自动携带 Token、错误提示及登录状态管理,适用于 Vue 项目。
130 1
|
2月前
|
JavaScript 安全
vue3使用ts传参教程
Vue 3结合TypeScript实现组件传参,提升类型安全与开发效率。涵盖Props、Emits、v-model双向绑定及useAttrs透传属性,建议明确声明类型,保障代码质量。
276 0
|
资源调度 JavaScript
|
缓存 JavaScript 搜索推荐
|
12月前
|
JavaScript API 数据处理
vue3使用pinia中的actions,需要调用接口的话
通过上述步骤,您可以在Vue 3中使用Pinia和actions来管理状态并调用API接口。Pinia的简洁设计使得状态管理和异步操作更加直观和易于维护。无论是安装配置、创建Store还是在组件中使用Store,都能轻松实现高效的状态管理和数据处理。
658 3
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
231 2
|
前端开发 JavaScript 安全
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
1507 4
|
JSON JavaScript 前端开发
axios的post请求,数据为什么要用qs处理?什么时候不用?
axios的post请求,数据为什么要用qs处理?什么时候不用?
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
182 0