使用VueJs处理Laravel验证错误 - 422(不可处理的实体)

时间:2017-03-10 11:24:55

标签: ajax validation laravel-5 vuejs2 axios

我正在使用Larvel 5.3和VueJS @ 2以及Axios来向服务器发送ajax请求。

我的问题是我无法获得laravel表单验证错误。 调试时我发现firebug控制台显示422(Unprocessable Entity)错误,这是自然的,因为服务器没有得到预期的值。但是,我需要获取那些验证错误并在我的表单中显示。

这是我的VueJS Part

new Vue({
    el: '#blogWrap',
    data: {
        formInputs: {},
        formErrors: {}
    },
    methods: {
        onSubmit: function () {
            var csrfToken = document.querySelector('input[name="_token"]').value;
            console.log(this.formInputs);
            axios.post("/createpost", this.formInputs, {
                headers: {'X-CSRF-TOKEN': csrfToken }
            })
            .then(function (response) {
                console.log(response);
            })
            .catch(function (data, status, request) {
                console.log(data);
                this.formErrors = data.data;
            });

        }
    }
})

我接下来的链接但无法解决422错误。 http://taha-sh.com/blog/setting-up-ajax-validation-with-laravel-vuejs-in-no-time

1 个答案:

答案 0 :(得分:0)

函数然后需要2个回调,第一个是成功(http状态200),第二个是任何其他http状态。

this.$http.post('url',data)
.then(success => {
    // no errors
}, error => {
    // error
    if(error.code == 422){
        console.log(error.data)
    }
})