1.在src/下新建api文件夹,api/下新建index.js和public.js

在public.js中:

import axios from 'axios';
import qs from 'qs'
import router from '../router'
import { MessageBox} from 'mint-ui' // 注意点,按照以下写
var instance = axios.create();
instance.defaults.timeout = 10000;
instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; export default {
fetchGet(url, params = {}) {
return new Promise((resolve, reject) => {
axios.get(url, params).then(res => {
if(res.data.code === 302) {
MessageBox('提示', '登录失效,请重新登录');
MessageBox.alert('登录失效,请重新登录', '提示').then(action => {
router.push("/login");
});
}
resolve(res.data);
}).catch(error => {
reject(error);
})
})
},
fetchPost(url, params = {}) {
/*
axios post请求后端接收不到参数问题: 解决方案一:有效,但是兼容性不是很好,不是所有浏览器都支持
let data = new URLSearchParams()
for (var key in params) {
data.append(key, params[key])
}
*/ // 解决方案二:使用qs模块(axios中自带),使用qs.stringify()序列化params
return new Promise((resolve, reject) => {
axios.post(url, qs.stringify(params)).then(res => {
resolve(res.data);
}).catch(error => {
reject(error);
})
})
}
}

2.在index.js中:

import http from './public'

export const getStation = (params) => {
return http.fetchGet('/hydro/rest/getBelongUser', params);
} export const userLogin = (params) => {
return http.fetchPost("/hydro/rest/login", params);
}

3.在Login.vue中调用post请求方法:

<template>
<div class="login">
<h1>登录页面</h1>
<input type="text" placeholder="请输入用户名" v-model="Username">
<input type="password" placeholder="请输入密码" v-model="Password">
<input type="button" value="登录" @click="toLogin">
</div>
</template> <script>
import {userLogin} from "../../api/index" export default {
name: 'app',
data() {
return {
Username: "",
Password: ""
}
},
methods: {
toLogin() {
let params = {
username: this.Username,
password: this.Password
}; userLogin(params).then(res => {
if(res.code === 200) {
this.$router.push("/home")
}
})
}
}
}
</script>

#### 4.在Home.vue调用get请求方法

<template>
<h1 class="home">
{{stationName}}
</h1>
</template> <script>
import {getStation} from "../../api/index" export default {
data() {
return{
stationName: ""
}
},
created() {
getStation().then(res => {
this.stationName = res.msg;
})
}
}
</script>

Vue简单封装axios—解决post请求后端接收不到参数问题的更多相关文章

  1. vue --- axios发post请求后台接收不到参数的三种解决方案

    最近用vue  做项目使用axios 发送post 请求时遇到了前端传数据后端接收不到的情况: 后来仔细对比发现axios传值是这样的: 而 ajax 传值是这样的: 一个 Request Paylo ...

  2. axio post 请求后端接收不到参数的解决办法

    原因是没有对参数进行序列化 默认情况下,axios将JavaScript对象序列化为JSON. 要以应用程序/ x-www-form-urlencoded格式发送数据. 在拦截器前修改 方法一,用原生 ...

  3. Vue 封装axios(四种请求)及相关介绍(十三)

    Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...

  4. Jquery Ajax简单封装(集中错误、请求loading处理)

    Jquery Ajax简单封装(集中错误.请求loading处理) 对Jquery Ajax做了简单封装,错误处理,请求loading等,运用到项目中集中处理会很方便. 技术层面没有什么好说的,请求是 ...

  5. 微信小程序:使用wx.request()请求后台接收不到参数

    问题描述: 微信小程序:wx.request()请求后台接收不到参数,我通过wx.request()使用POST方式调用请求,参数传递不到后台 解决方案: Content-Type': 'applic ...

  6. 简单封装axios api

    可以在代码逻辑中写axios请求,处理请求结果,但是随着项目越来越大,代码会很繁琐,不容易维护,所以,可以把一些在所有请求中都要处理的逻辑抽取出来,封装成api方法.比如每次请求中都要判断是否有权限, ...

  7. axios 发 post 请求,后端接收不到参数的解决方案

    问题场景 场景很简单,就是一个正常 axios post 请求: axios({ headers: { 'deviceCode': 'A95ZEF1-47B5-AC90BF3' }, method: ...

  8. 封装axios,带请求头和响应头

    import axios from "axios"; import qs from "qs"; //处理参数 import router from '../ro ...

  9. axios发post请求,后端接收不到参数的问题

    axios会帮我们自动转换请求数据和响应数据 以及 自动转换JSON数据,我们的请求头转换成 Content-Type变成了application/json;charset=utf-8,然后因为我们的 ...

随机推荐

  1. SQL SERVER 数据库如何限制一列不能重复(已经有主键)

    ALTER TABLE 表名ADDCONSTRAINT 约束名 UNIQUE (列名) -------------------------------------------------------- ...

  2. Apache主要配置文件http.conf

    1.基本概念 Define SRVROOT "/Apache24" ServerRoot "${SRVROOT}" #Apache安装的根路径 #Listen ...

  3. 在volist中用遍历

    $('.InColor').each(function(){ if($(this).val()==1){ $('.absolute').css({"color":"gra ...

  4. XXX is not a function

    今天,一个以前的小伙伴跟我说他遇到了一个问题,调试了将近两天(这家伙一开始不打算干程序员,跑去干了两个月销售,现在又想回来写代码了,所以就自己折腾一个demo,免得面试的时候被问住) 我把他的代码从头 ...

  5. 如何快速优雅的解决:ORA-02290: 违反检查约束条件 异常问题

    在向oracle保存数据时,控制台报错如下: 很明显是保存时,该表的设计不允许某个字段非空导致的,但由于该表的数量较多,采用断点的方式有太过麻烦, 这里笔者采用 oracle 的客户端连接工具orac ...

  6. 170830-关于JdbcTemplate的练习题以及其中的问题

    实验1:测试数据源 在spring文件中配置: 测试数据源: 结果: 实验2:将emp_id=5的记录的salary字段更新为1300.00[更新操作] update函数中,第一个是sql语句,后面的 ...

  7. Hyperledger交易流程

    Hyperledger Fabric Network中的角色 在Hyperledger中,由三种类型的角色: Client:应用客户端,用于将终端用户的交易请求发送到区块链网络: Peers:负责维护 ...

  8. WPF UI Close button

    <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/w ...

  9. Linux - 创建交换分区 swap

    购买的 1GB 内存的 Linux 小机器,在编译安装 PHP 的时候内存捉急,只好开启 swap 交换分区来增大内存. [root@VM_139_38_centos php-7.2.12]# cat ...

  10. BZOJ[3728]PA2014 Final Zarowki

    有n个房间和n盏灯,你需要在每个房间里放入一盏灯.每盏灯都有一定功率,每间房间都需要不少于一定功率的灯泡才可以完全照亮. 你可以去附近的商店换新灯泡,商店里所有正整数功率的灯泡都有售.但由于背包空间有 ...