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>
相关文章
|
2月前
|
资源调度 JavaScript
|
2月前
|
缓存 JavaScript 搜索推荐
|
1月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
53 2
|
1月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
37 0
|
2月前
|
前端开发 JavaScript 安全
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
152 4
|
2月前
|
JSON JavaScript 前端开发
axios的post请求,数据为什么要用qs处理?什么时候不用?
axios的post请求,数据为什么要用qs处理?什么时候不用?
|
4月前
|
JavaScript 前端开发
【Vue面试题二十五】、你了解axios的原理吗?有看过它的源码吗?
这篇文章主要讨论了axios的使用、原理以及源码分析。 文章中首先回顾了axios的基本用法,包括发送请求、请求拦截器和响应拦截器的使用,以及如何取消请求。接着,作者实现了一个简易版的axios,包括构造函数、请求方法、拦截器的实现等。最后,文章对axios的源码进行了分析,包括目录结构、核心文件axios.js的内容,以及axios实例化过程中的配置合并、拦截器的使用等。
【Vue面试题二十五】、你了解axios的原理吗?有看过它的源码吗?
|
4月前
|
JavaScript 前端开发
【Vue面试题二十七】、你了解axios的原理吗?有看过它的源码吗?
文章讨论了Vue项目目录结构的设计原则和实践,强调了项目结构清晰的重要性,提出了包括语义一致性、单一入口/出口、就近原则、公共文件的绝对路径引用等原则,并展示了单页面和多页面Vue项目的目录结构示例。
|
3月前
|
JavaScript 前端开发 开发者
vue中使用axios请求post接口,请求会发送两次
vue中使用axios请求post接口,请求会发送两次
下一篇
DataWorks