小宝管理系统采用前后端分离,小宝管理系统后端提供相关API,小宝管理系统前端负责渲染数据。
2018.5.18----VER 1.0.0 beta
- 完成基本功能。
- 为小宝系统提供基本功能的API。
API | 描述 | 方法 | 参数 | 返回 |
---|---|---|---|---|
/admin | 登录 | POST | username(String),password(String) | Object |
/changeadminpwd | 修改密码 | POST | adminName(String),oldPassword(String),newPasswrod(String) | Object |
/adminlogout | 登出 | POST | Object |
API | 描述 | 方法 | 参数 | 返回 |
---|---|---|---|---|
/allusers | 获取所有用户 | GET | Object |
API | 描述 | 方法 | 参数 | 返回 |
---|---|---|---|---|
/weathertime | 获取天气推送时间 | GET | Object | |
/setweathertime | 获取天气推送时间 | GET | time(String[00:00]) | Object |
/weatherservice | 开启关闭天气服务 | POST | bl(Boolean),id(String) | Object |
API | 描述 | 方法 | 参数 | 返回 |
---|---|---|---|---|
/updateall | 从Wechat更新最新的数据到小宝数据库 | GET | Object |
问题1 前端请求数据的跨域问题。
- 在后端设置允许跨域。
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
});
问题2 设置跨域后,前端发送POST请求,后端接收不到数据。
- 前端使用axios发送ajax请求时,需要使用qs包格式一下POST的参数。
问题3 无法成功设置登录状态Cookie
- 需要再添加一条 Access-Control-Allow-Credentials:true 表示允许跨域携带cookie, 并且要将Access-Control-Allow-Origin指定到具体的域,否则cookie不会带到客户端。 感觉这样设置麻烦。。。。。 于是在npm发现了一个专门跨域的包 cors.
const cors = require('cors')
app.use(cors({credentials: true, origin: 'http://localhost:8080'}));
- 由于前端我用axios发送的ajax请求,所以还要设置下axios withCredentials: true 允许携带凭证 这样就ok拉~
其他问题我将会在博客中进行总结
-
小宝管理系统--前端(移动端) 技术栈 vue+vue-router+vuex+vux
-
小宝管理系统--后端 技术栈 Nodejs+Express+MongoDB
-
小宝Robot 技术栈 Nodejs + Wechaty