vue2人力资源项目2登录接口、跳转主页

用户名和密码

解决跨域问题

1.在vue.config.js里配置

 proxy: {// 如果请求地址里有api,就转成这个地址'/api': {target: 'https://heimahr.itheima.net/'}}// before: require('./mock/mock-server.js')},

axios封装

utils/request.js

import axios from 'axios'// create an axios instance,设置基地址和响应时间const service = axios.create({baseURL: '/api', // url = base url + request url// withCredentials: true, // send cookies when cross-domain requeststimeout: 10000 // request timeout
})

处理请求拦截器,携带token

index.js

import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import app from './modules/app'
import settings from './modules/settings'
import user from './modules/user'Vue.use(Vuex)const store = new Vuex.Store({modules: {app,settings,user},// 在store的配置中,modules属性是一个对象,包含了之前导入的模块。// 每个模块都会被添加到store中,并且可以独立地拥有自己的状态和逻辑。// getters属性直接引用了之前导入的getters对象,这些getter函数会被添加到store中,可以在整个应用中被访问。getters
})
// 将store实例导出默认,这样其他文件(比如主入口文件main.js)就可以导入并使用它。
export default store

utils/request.js


// 基于之前创建的axios实例创建响应拦截器
// 成功时执行第一个回调函数
// 失败时执行第二个回调函数
service.interceptors.request.use((config) => {// 注入token// 记得要return,要使用configif (store.getters.token) {config.headers.Authorization = `Bearer${store.getters.token}`}return config
}, (error) => { return Promise.reject(error) })export default service

index.vue测试

 AxiosTest() {request({url: '/sys/login',method: 'post',data: {mobile: '13312345678',password: '123456'}})}

响应拦截器:判断解构数据是否异常,以及请求是否成功执行

// 响应拦截器
service.interceptors.response.use((response) => {const { data, message, success } = response.dataif (success) {return data} else {Message({ type: 'error', message })return Promise.reject(new Error(message))// 这里没有传入error,所以新建了一个Error对象,在传信息}
}, async(error) => {Message({ type: 'error', message: error.message })return Promise.reject(error)
})
export default service

总结

区分环境

created() {alert(process.env.NODE_ENV)}

请求模块

api.user.js里封装登录请求接口

import request from '@/utils/request'export function login(data) {// return 以使用request产生的promisereturn request({url: '/sys/login',method: 'post',data// 简写,使用了传过来的数据 data:data})
}

store/user.js

import { login } from '@/api/user'
// 用来存放异步数据
const actions = {// context上下文,传入参数async login(context, data) {console.log(data)// 点击调用登录接口,成功执行await后的内容const token = await login(data)// 提交mutations里的数据,调用context里的默认方法context.commit('setToken', token)}
}

跳转主页

login/index.vue

methods: {login() {// 通过ref获取from表单元素,调用已有的validate方法,对整个表单进行校验this.$refs.form.validate(async(isOk) => {if (isOk) {// alert('快速通过')// 调用store/user.js里的actions里的异步方法login// vuex中的action返回的结果是promise,需要await// 有await说明执行成功,可以跳转主页,失败在axios封装时已经处理,无需再次考虑await this.$store.dispatch('user/login', this.loginForm)// 跳转主页,由router/index.js可知/表示主页this.$router.push('/')}})}}

判断当前环境是生产还是开发

开发环境有数据,生产环境没有数据

 loginForm: {mobile: process.env.NODE_ENV === 'development' ? '13800000002' : '',password: process.env.NODE_ENV === 'development' ? 'hm#qd@23!' : '',isAgree: process.env.NODE_ENV === 'development'}

总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/9170.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux-信号执行

1. 信号什么时候被处理 当进程从内核态返回到用户态的时候,进行信号的检测和处理 什么内核态,什么又是用户态呢? 当进程在CPU上运行时,内核态:允许进程访问操作系统的代码和数据,用户态:进程只…

户口本翻译件怎么处理?

户口本是中国公民的重要证件,由中华人民共和国公安部精心制作,不仅是国内身份的凭证,更是走向世界的一张关键名片。对于想出国留学 、追求移民生活或是追寻异国风情的旅行者来说,户口本翻译件都是不可或缺的一部分。那么&#xf…

Duplicate entry ‘asdfg‘ for key ‘clazz.name‘

Mybatis:java.sql.SQLIntegrityConstraintViolationException:Duplicate entry ‘asdfg’ for key ‘clazz.name’ 违反了数据库的唯一约束条件,即插入数据的时候具有唯一约束(被unique修饰)的列值重复了 在修改的过程中发生错误,…

【LLM 论文】Least-to-Most Prompting 让 LLM 实现复杂推理

论文:Least-to-Most Prompting Enables Complex Reasoning in Large Language Models ⭐⭐⭐ Google Research, ICLR 2023 论文速读 Chain-of-Thought(CoT) prompting 的方法通过结合 few-show prompt 的思路,让 LLM 能够挑战更具…

蓝桥青少一月 STEMA-Python 测评第一题

第一题(难度系数 2,18 个计分点) (注.input()输入函数的括号中不允许添加任何信息) 编程实现: 给定一个正整数 N,输出 N 除以 3 的商。 输入描述:输入一个正整数 N 输出描述:输出 N 除以 3 的商…

2024年抖音小店最新起店玩法,比你报的上万课程都有用!

大家好,我是电商糖果 刚开店的朋友,一定会遇到出单难,店铺没有流量的问题。 自己在网上找一堆教程,或者花高价去报课程。 有的朋友比较幸运,遇到了好的领路人,但是大部分朋友还是没有那么幸运的。 糖果…

API低代码平台介绍2-最基本的数据查询功能

最基本的数据查询功能 本篇文章我们将介绍如何使用ADI平台定义一个基本的数据查询接口。由于是介绍平台具体功能的第一篇文章,里面会涉及比较多的概念介绍,了解了这些概念有助于您阅读后续的文章。 ADI平台的首页面如下: 1.菜单介绍 1.1 O…

【协同过滤】ItemCF协同过滤方法简介

一、ItemCF协同过滤方法 ItemCF 是基于物品相似度进⾏推荐的协同过滤算法。 通过计算共现矩阵中物品列向量的相似度得到物品之间的相似矩阵, 再找到⽤户的历史正反馈物品的相似物品进⾏进⼀步排序和推荐,Item CF的具体步骤如下: 构建共现矩…

测试项目实战——安享理财1(测试用例)

说明: 1.访问地址: 本项目实战使用的是传智播客的安享理财项目(找了半天这个项目能免费用且能够满足测试实战需求) 前台:http://121.43.169.97:8081/ 后台:http://121.43.169.97:8082/ (点赞收藏…

Python turtle绘制图形详解

Python 的 Turtle 模块是一个简单而直观的绘图工具,可以帮助初学者理解基本的图形绘制概念。 1.导入 Turtle 模块: import turtle 2.创建 Turtle 对象: t turtle.Turtle() 3.绘制图形: 4.移动Turtle对象:t.forward(di…

点击短信链接唤起Android App实战

一.概述 在很多业务场景中,需要点击短信链接跳转到App的指定页面。在Android系统中,想要实现这个功能,可以通过DeepLink或AppLink实现。二.方案 2.1 DeepLink 2.1.1 方案效果 DeepLink是Android系统最基础、最普遍、最广泛的外部唤起App的方式,不受系统版本限制。当用户…

腾讯云优惠券领取指导及优惠券使用指南详解

在当今云计算市场,腾讯云以其出色的性能和服务质量受到了广大用户的青睐。为了回馈用户,腾讯云经常推出各种优惠活动,其中就包括优惠券的发放。那么,如何领取腾讯云优惠券,并正确地使用它们呢?本文将为您详…

虚拟机镜像文件qcow2格式转vmdk

一、在esxi上虚拟机导出qcow2镜像文件 1、卸载数据盘、网卡 2、登录虚拟机所在物理服务器,查找系统盘名为vm-101-disk-0的文件位置 find / -name "vm-101-disk-0"使用命令导出qcow2镜像(进度条走完就完成了): qemu…

JAVA----Thread(2

Thread 提供的属性和方法 目录 Thread 提供的属性和方法一.构造方法1.Thread() :2.Thread(Runnable target) :3.Thread(String name) :main 线程 4.Thread(Runnable target, String name) : 二.属性1.ID (getId)2.名称(getName)3.状态(getState)4.优先级 (getPriority)5.是否后…

leetcode-岛屿数量-99

题目要求 思路 1.使用广度优先遍历,将数组中所有为1的元素遍历一遍,遍历过程中使用递归,讲该元素的上下左右四个方向的元素值也置为0 2.统计一共执行过多少次,次数就是岛屿数量 代码实现 class Solution { public:int solve(vec…

线程安全问题、同步代码块、同步方法

线程安全问题就是 用线程同步来解决线程安全问题 同步:一个线程接着一个线程等待执行 同步代码块: 通过锁来解决卖到重复票的问题:卖票问题和存钱取钱问题(见其他两篇文章) 同步方法:

【算法练级js+java】旋转字符串判断是否相等

每一天一道算法题训练,努力打开编程思维,才能进大厂光明正大的泡心仪的小姐姐!!(手动捂脸) 题目 /** * 给定字符创A和B * 旋转字符串A,就是把最左边的移动到最右边 * 比如A‘abcde’,在移动一次之后结果就是bcdea * 如果若干次之…

最全网络安全学习路线!涵盖所有知识点,看这一篇掌握网安技能!

目录 零基础小白,到就业!入门到入土的网安学习路线! 建议的学习顺序: 一、夯实一下基础,梳理和复习 二、HTML与JAVASCRIPT(了解一下语法即可,要求不高) 三、PHP入门 四、MYSQL…

加密/解密--数字信封/数字签名/数字证书

what 加密 加密:加密就是对原来为明文的文件或数据按某种算法进行处理,使其成为一 段不可读的代码,通常称为 “密文”。从而达到保护数据不被非法窃取的目的。 解密 数据加密的逆向过程,将加密的数据转换为明文 加/解密工作机…

C语言队列的含义与队列数据操作代码详解!

引言:于本篇博客当中,我们将讲到数据结构——队列的有关知识。而对于这次的队列,我们将会在单链表的基础上实现。 更多有关C语言和数据结构知识详解可前往个人主页:计信猫 一,队列的含义 队列是一种特殊的线性表&#…