0

我使用 VuejS 创建了一个登录页面,当我直接访问服务器中的浏览器时,它给了我 500 错误。但是当我从我的网站上点击它时它可以工作。

我的 Login.vue :

<template>
<div>
<div v-if="progress" class="progress-bg">
                <div class="lds-ellipsis"><div></div><div></div><div></div><div></div></div>
                </div>
        <section class="container login">

            <h1 class="login-title text-center">Login With Email</h1>
            <form>
                                              <p v-if="error">{{error}}</p>

                <div class="form-group">
                    <input type="text" v-on:keyup="validate()" v-model="email" :disabled="disabled" class="edt-text" name="email" placeholder="Email">
                          <p v-if="emailError">{{ emailError}}</p>

                </div>
                <div class="form-group">
                    <input type="password" v-on:keyup="validate()" v-model="password" :disabled="disabled" class="edt-text" name="password" placeholder="Password">
                    <p v-if="passwordError">{{ passwordError}}</p>

                </div>
                <p class="label-forgot-password">Forgot Password?</p>
                <div class="form-group">
                    <button type="button" :disabled="disabled" v-on:click="login" class="btn-login">Login</button>
                </div>                
            </form>
            <p class="text-center">Or Connect With</p>
            <div class="row social-login-buttons text-center">
                <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
                    <button type="button" class="btn-google"><i class="fa fa-google"></i>Google</button>
                </div>
                <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
                    <button type="button" class="btn-facebook"><i class="fa fa-facebook"></i>Facebook</button>
                </div>
            </div>
            <div class="row">
                <p class="text-center yellow-text margin-20">Don't you have an account?</p>
            </div>
        </section>
        </div>
</template>


<script>

import axios from 'axios'

export default {

    name:"Login",
    data() {

        return {

            email:'',
            password:'',
            progress:false,
            disabled:false,
            emailError:null,
            passwordError:null,
            error:null,
            

        }


    },

    

    methods: {

        async login() {
            this.error = ''
      if (this.email && this.password && this.validEmail(this.email)) {

            this.progress = true
            this.disabled = true

            let result = await axios.get(
                `https://example.com/login/direct?email=${this.email}&password=${this.password}`
            )
            this.progress=false
            this.disabled=false

            if(result.status == "200"){


                if(result.data['status'] == true) {

                    localStorage.setItem("user-token", JSON.stringify(result.data['token']))
                    this.$router.push({name:'Home'})

                }
                else {

                    this.error = "Invalid email address / password"
                    this.email=''
                    this.password=''
                }

            }
        }
        else {
            this.validate()
        }


   

        },

        validate() {

        if (!this.email) {
        this.emailError = 'Email address required.';
      }
      else if (!this.validEmail(this.email)) {

                  this.emailError = 'Enter valid email address.';

      }
      else{
                            this.emailError = null;

      }

      if (!this.password) {
        this.passwordError = 'Password is required';
      }
      else{
            this.passwordError = null;
      }
      },

    validEmail(email) {
      var re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
      return re.test(email);
},


        }





};

</script>


我的路由器/index.js :

import Vue from 'vue'
import VueRouter from 'vue-router'';
import ChatList from '../views/Chat/ChatList.vue'
import Chat from '../views/Chat/Chat.vue'
import Login from '../views/Login/Login.vue'

Vue.use(VueRouter)

const routes = [
 
    {
    path: '/inbox',
    name: 'ChatList',
    component:ChatList
  },
    {
    path: '/chat',
    name: 'Chat',
    component:Chat
  },

  {
    path: '/login',
    name: 'Login',
    component:Login
  },
    
]

const router = new VueRouter({
  mode:'history',
  routes
})

export default router

当我从通过超链接链接的网站单击时,我可以访问我的登录页面,但是当我直接将 url 打到浏览器地址栏中时,它会给我内部服务器错误。

4

0 回答 0