laravel的响应未在vue js中正确记录

时间:2019-09-14 11:53:51

标签: laravel vue.js

我正在做一个项目。我在哪里使用laravel作为后端,使用VueJS作为前端。我调用了一个要求laravel插入用户的API。我想检查后端验证是否成功完成。为此,我要发送数据库中已经存在的电子邮件。验证响应可以。但是我只想记录一条消息,而不是记录整个响应。消息以某种方式未记录,但响应已记录。我不知道是什么问题

API调用

enter image description here

回复

enter image description here

我要记录消息,而不是整个响应

enter image description here

2 个答案:

答案 0 :(得分:0)

因此422是错误,您必须在.catch块中处理它

.then() // everything went good
.catch() // something went wrong

类似这样的东西

.then(response => {
    // great
})
.catch(error => {
    if (error.response.status === 422) {
    // do something here
    }
}

答案 1 :(得分:0)

链接```.catch(error => {console.log(“ Errors,error”)});根据您的ajax请求。

我曾经写过这个小助手。它可以处理Laravel以及从后端返回的自定义消息。这不是完美的方法,但可以使您的工作方向良好。

export function errorMessage(error) {
    let errorResponse = error.response.data.errors ? error.response.data.errors : error.response.data;

    let errors = [];
    for (let key in errorResponse){
        if(key === 'message'){
            errors.push(errorResponse[key]);
        }
        else if (key !== 'exception' && key !== 'file' && key !== 'line' && key !== 'trace'){
            for (let i = 0; i < errorResponse[key].length; i++){
                errors.push(errorResponse[key][i]);
            }
        }
    }

    return errors;
}

您可以在let errors = errorMessage(error))之类的catch块中使用它。我在通知插件中填入了显示在屏幕顶部的消息。