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. Laya 首日红点逻辑

    Laya 首日红点逻辑 @author ixenos 2019-08-26 10:50:27 1.原理:显然,首日红点意味着包含进程销毁的情况,那么就要持久化存储信息,这里我们使用LocalStora ...

  2. 解决:使用ajax验证登录信息返回前端页面时,当前整个页面刷新。

    源代码如下: function loginform(){ $.ajax({ url:"loginValidate.do", type:'post', data:{"nam ...

  3. 后端PHP框架laravel学习踩的各种坑

    安装完laravel的ventor目录后出现“Whoops, looks like something went wrong.”这样的错误信息 打开config/app.php,打开debug为tru ...

  4. 北风设计模式课程---开放封闭原则(Open Closed Principle)

    北风设计模式课程---开放封闭原则(Open Closed Principle) 一.总结 一句话总结: 抽象是开放封闭原则的关键. 1."所有的成员变量都应该设置为私有(Private)& ...

  5. win10蓝屏1

    win10一直蓝屏. 事件查看里有系统错误提示 DCOM部分组件错误,表现为:应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC ...

  6. selinux 了解2

    凡是对内核级, 如selinux的修改, 不只是对软件, 程序的修改, 那么修改之后都要重新启动. 针对windows下的截图, 像linux下的screenshot截图那样设置快捷键 shift+s ...

  7. (一)Maven之使用入门

    目录 今天是端午节哦,昨天大学同学举个了会.鱼头泡饼贼拉香,嗯哼,有点跑题了:之后去了同学家里坐了坐:发现同我有一样的书,即:<maven实战>:记得是从二手网店淘到的,已经买了有小半年, ...

  8. 再谈 COW、ROW 快照技术

    目录 目录 前言 快照与备份的区别 快照技术 增量快照之 COW 增量快照之 row 前言 在经过了一段时间的实践之后,再次回顾 COW/ROW 快照技术的实现原理,温故而知新. 快照与备份的区别 传 ...

  9. Openstack 通过 SQLAlchemy-ORM 访问数据库

    目录 目录 Demo SQLAlchemy 数据库的初始化 数据库的操作实现 数据库的操作请求 全部查询 单个查询 创建 更新 删除 Demo Github/JmilkFan/my-code-repe ...

  10. set()运算

    1 计算两个list的关系时,可转化为set进行运算. 参考:https://www.runoob.com/python3/python3-set.html a =[1,4,3,5,6,6,7,7,7 ...