Ошибка типа: res.response не определен - PullRequest
0 голосов
/ 01 ноября 2019

Я делаю аутентификацию пользователя с использованием аутентификации JWT в SPA с Vue / Laravel. У меня проблема с модулем регистрации, он ничего не делает, когда я нажимаю кнопку, я проверил консоль Firefox Developer Edition и выдает следующую ошибку:

TypeError: res.response не определен

Это мой код

<template>
<div class="container">
    <div class="card card-default">
        <div class="card-header">Inscription</div>
        <div class="card-body">
            <div class="alert alert-danger" v-if="has_error && !success">
                <p v-if="error == 'registration_validation_error'">Error</p>
                <p v-else>Try again later.</p>
            </div>
            <form autocomplete="off" @submit.prevent="register" v-if="!success" method="post">
                <div class="form-group" v-bind:class="{ 'has-error': has_error && errors.email }">
                    <label for="email">E-mail</label>
                    <input type="email" id="email" class="form-control" placeholder="user@example.com" v-model="email">
                    <span class="help-block" v-if="has_error && errors.email">{{ errors.email }}</span>
                </div>
                <div class="form-group" v-bind:class="{ 'has-error': has_error && errors.password }">
                    <label for="password">Mot de passe</label>
                    <input type="password" id="password" class="form-control" v-model="password">
                    <span class="help-block" v-if="has_error && errors.password">{{ errors.password }}</span>
                </div>
                <div class="form-group" v-bind:class="{ 'has-error': has_error && errors.password }">
                    <label for="password_confirmation">Confirm password</label>
                    <input type="password" id="password_confirmation" class="form-control" v-model="password_confirmation">
                </div> <button type="submit" class="btn btn-default" @click="register">Inscription</button>
            </form>
        </div>
    </div>
</div>
</template>
<script>
    export default {
        data() {
            return {
                name: '',
                email: '',
                password: '',
                password_confirmation: '',
                has_error: false,
                error: '',
                errors: {},
                success: false
            }
        },
        methods: {
            register() {
                var app = this
                this.$auth.register({
                    data: {
                        email: app.email,
                        password: app.password,
                        password_confirmation: app.password_confirmation
                    },
                    success: function () {
                        app.success = true
                        this.$router.push({
                            name: 'Login',
                            params: {
                                successRegistrationRedirect: true
                            }
                        })
                    },
                    error: function (res) {
                        console.log(res.response.data.errors)
                        app.has_error = true
                        app.error = res.response.data.error
                        app.errors = res.response.data.errors || {}
                    }
                })
            }
        }
    }
</script>

Если это дает какую-то подсказку, у меня также есть предупреждение в консоли:

Причина: CORS-запрос не выполнен

Я понятия не имею, почему это происходит.

1 Ответ

0 голосов
/ 01 ноября 2019

Вы столкнулись с ошибкой CORS, которая означает, что сервер, к которому вы делаете запрос, не разрешает запросы из вашего клиентского домена. Если у вас есть сервер, вам нужно добавить свой домен в список разрешенных доменов, или, если это не удалось, убедитесь, что метод запроса «POST» разрешен.

Похоже, вы получаете ошибку res.response: когда ошибка попадает в функцию error, возвращается сообщение об ошибке, у которого нет свойства response. Попробуйте console. .log 'ответ "res", чтобы увидеть, что он дает вам, и отрегулировать свойство, которое вы используете оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...