登录页面:ele与tp6,跨域

编辑: admin 分类: 电脑知识 发布时间: 2023-06-14 来源:互联网
一、element文件:
  • shop\src\view\Login.vue
  • shop\src\network\request.js
  • shop\src\network\index.js
1、Login.vue文件代码
  1. <template>
  2. <div class="container">
  3. <div style="text-align: center">
  4. <!--<img src="@/assets/logo.jpg" alt="logo" />-->
  5. <h3>后台管理</h3>
  6. </div>
  7. <div class="main">
  8. <!-- label-width="auto" 导致ElementPlusError: [ElForm] unexpected width 0 -->
  9. <el-form :model="form" size="large">
  10. <el-form-item prop="account">
  11. <el-input v-model="form.account" name="account" class="w-50 m-2" placeholder="请输入账号">
  12. <template #prefix>
  13. <el-icon class="el-input__icon" style="color: #1890ff"><Avatar /></el-icon>
  14. </template>
  15. </el-input>
  16. </el-form-item>
  17. <el-form-item prop="password">
  18. <el-input v-model="form.password" name="password" type="password" class="w-50 m-2" placeholder="请输入密码" show-password>
  19. <template #prefix>
  20. <el-icon class="el-input__icon" style="color: #1890ff"><Lock /></el-icon>
  21. </template>
  22. </el-input>
  23. </el-form-item>
  24. <el-form-item prop="remember">
  25. <el-checkbox v-model="form.remember" label="1" size="large">保存账密</el-checkbox>
  26. </el-form-item>
  27. <el-form-item>
  28. <el-button type="primary" style="width: 100%" @click="onSubmit()">登录</el-button>
  29. </el-form-item>
  30. </el-form>
  31. </div>
  32. </div>
  33. </template>
  34. <style>
  35. .container {
  36. position: relative;
  37. width: 100%;
  38. min-height: 100%;
  39. padding: 110px 0 144px;
  40. background-repeat: no-repeat;
  41. background-position: center 110px;
  42. background-size: 100%;
  43. }
  44. .main {
  45. width: 368px;
  46. min-width: 260px;
  47. margin: 50px auto;
  48. }
  49. .el-icon {
  50. color: #359eff;
  51. }
  52. </style>
  53. <script>
  54. import { reactive } from "vue";
  55. //import { request } from "../network/request.js";
  56. import { login } from "../network/index.js";
  57. export default {
  58. setup() {
  59. const form = reactive({
  60. account: "428188207@qq.com",
  61. password: "123456",
  62. remember: true,
  63. });
  64. const onSubmit = ()=>{
  65. login({
  66. account : form.account,
  67. password : form.password,
  68. }).then(res =>{
  69. alert(res.data.msg);
  70. if(res.data.code == 0){
  71. // 跳转到新页面
  72. }
  73. })
  74. }
  75. return {
  76. form,
  77. onSubmit
  78. };
  79. }
  80. };
  81. </script>

2、request.js文件代码
  1. import axios from "axios";
  2. export function request(config){
  3. const create = axios.create({
  4. baseURL : "http://tp.io/index.php/admin"
  5. });
  6. // 请求拦截
  7. create.interceptors.request.use(
  8. (config)=>{
  9. // config 里面的数据进行判断
  10. config.method = "POST";
  11. return config;
  12. },
  13. (err)=>{
  14. console.log(err);
  15. }
  16. );
  17. // 响应拦截
  18. create.interceptors.response.use(
  19. (res)=>{
  20. // res是接口的返回值
  21. return res;
  22. },
  23. (err)=>{
  24. console.log(err);
  25. }
  26. );
  27. return create(config);

3、index.js文件代码
  1. import { request } from "./request.js";
  2. export function login(data){
  3. return request ({
  4. url : "Login/index",
  5. data
  6. })
  7. }

二、TP文件
  • tp6\app\admin\controller\Login.php
1、Login.php文件代码
  1. <?php
  2. namespace app\admin\controller;
  3. use think\facade\Db;
  4. class Login
  5. {
  6. public function index()
  7. {
  8. // 跨域请求
  9. header("Access-Control-Allow-Origin:*");
  10. // 一个接口有3段
  11. // 1、获取传值的数据,并且检查这些信息(非必须)
  12. // 2、通过传值进行数据查询,并处理这些数据(非必须),可以自己组装数据
  13. // 3、返回查询的数据结果(必须)
  14. $account = input('post.account');
  15. $password = input('post.password');
  16. $user = Db::table('xpcms_abc')->where('username', $account)->find();
  17. //print_r($user);
  18. if(empty($user)){
  19. echo json_encode(['code'=>1, 'msg'=>'账号不存在']);
  20. exit;
  21. }
  22. if($user['password'] != $password){
  23. echo json_encode(['code'=>1, 'msg'=>'密码错误']);
  24. exit;
  25. }
  26. echo json_encode(['code'=>0,'msg'=>'成功','data'=>$user]);
  27. }
  28. }

3、登录图:




4、注意点:
  1. 1、跨域请求问题:
  2. a. 在源登录文件添加: header("Access-Control-Allow-Origin:*");
  3. b. 在middleware.php文件添加:
  4. \think\middleware\AllowCrossDomain::class
  5. 2、TP的数据库文件需修改默认参数
  6. 3、TP修改错误信息显示: tp6\config\app.php
  7. // 显示错误信息
  8. 'show_error_msg' => true,
【文章原创作者:欧洲服务器 http://www.558idc.com/helan.html 复制请保留原URL】