vue+webapi+axios

一直在学习vue,东一下,西一下的。感觉只是学了一大堆,但是都不会用。知识呢在项目中学的最快,所以这周一就想了一个练手项目,由于练得主要是技术,就找了一个业务逻辑相对熟悉的OA。功能也很简单,只有两大块:用户管理、日志管理。

第一步:设计数据库,数据库用的是Oracle,原来很少用这个,新公司要用这个,那就用呗。创建数据库、创建用户、分配权限、创建表。

第二步:搭建后台框架:后台使用的是webapi<c#>,写实体类、oracle帮助类、以及数据库操作类,然后再写控制类。

第三步:搭建前台框架:前台使用的是Vue全家桶<本人是后端,项目上要用vue,所以要学>,路由,模板、axios。

设计数据库的时候,基本没什么问题,写后台代码也没什么问题,问题在前端以及前后端数据交互的时候出现了,

前端在用axios连接后端时,报错,说是存在跨域问题。问题主要是两个方面:

                前端问题:用的是axios,所以应该检查是否配置了axios.defaults.withCredentials=true,如果配置了,改为false

               后端问题:后端要引入cors,并在WebApiConfig上进行配置,最简单的配置是config.EnableCors(new EnableCorsAttribute("*","*","*"))。网上有好多相关的资料,可以查看一下。

vue的路由问题:我想要的是左侧是菜单,点击左侧菜单,右侧内容根据改变。我看了好多资料都没有明白是怎么回事。后来明白了。因为要左侧固定,右侧可以变,那么肯定是有一个页面既有左侧菜单,也有右侧router-view,做左侧菜单涉及到的路由全都是这个页面的子路由。

贴代码:

                                (图一)

上图中的leftNav就是左侧菜单,下面的router-view就是右侧要显示内容的地方。

上图中的Index就是图一中的vue页面,下面三个链接,是左侧菜单中跳转的链接。

话说前端需要学的东西好多啊,js,jquery,css现在都是scss了,es6,webpack,node等等等等。

 

Vue.js 是一个流行的 JavaScript 应用程序框架,用于构建单页面应用程序(SPA)。Axios 是一个基于 Promise 的 HTTP 库,用于在 Web 应用程序中发送异步请求。 在 Vue 应用程序中,可以使用 Axios 发送 HTTP 请求来与后端服务器进行通信。以下是一个简单的示例,展示了如何使用 Axios 来发送登录请求并处理响应: ``` // 在 Vue 组件中引入 Axios import axios from 'axios'; // 定义一个名为 Login 的 Vue 组件 export default { data() { return { email: '', password: '' } }, methods: { login() { // 使用 Axios 发送 POST 请求 axios.post('/api/login', { email: this.email, password: this.password }) .then(response => { // 处理成功响应 console.log(response.data); }) .catch(error => { // 处理错误响应 console.log(error.response.data); }); } } } ``` 在后端服务器中,你可以使用一些框架来处理登录和注册请求。以下是一个使用 Node.js 和 Express 框架的示例: ``` // 引入 Express 框架和相关中间件 const express = require('express'); const bodyParser = require('body-parser'); const cors = require('cors'); // 初始化 Express 应用程序 const app = express(); // 解析请求体中的 JSON 数据 app.use(bodyParser.json()); // 允许跨域请求 app.use(cors()); // 处理登录请求 app.post('/api/login', (req, res) => { const email = req.body.email; const password = req.body.password; // 在数据库中查找用户信息 // ... // 验证用户信息 if (email === 'example@example.com' && password === 'password') { // 登录成功,返回用户信息和一个 JWT 令牌 const user = { id: 1, email: 'example@example.com' }; const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'; res.json({ user, token }); } else { // 登录失败,返回错误信息 res.status(401).json({ error: 'Invalid email or password.' }); } }); // 处理注册请求 app.post('/api/register', (req, res) => { const email = req.body.email; const password = req.body.password; // 在数据库中创建用户信息 // ... // 返回成功响应 res.json({ message: 'Registration successful.' }); }); // 启动服务器,监听端口 const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`Server started on port ${port}.`); }); ``` 注意,这只是一个简单的示例。在实际应用程序中,你需要处理更多的情况和错误,例如用户输入错误的凭据、数据库连接错误等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值