【问题标题】:how do i get json response from ajax error method我如何从 ajax 错误方法获得 json 响应
【发布时间】:2019-05-13 20:25:01
【问题描述】:

我正在尝试使用 vue 和 laravel 创建用户身份验证,在单击注册按钮后,我将表单数据发送到我以这种方式编码的创建用户控制器

public function store(Request $request)
{
    //

    $validator = Validator::make($request->all(), [
        'firstname'  =>  'required',
        'lastname'   =>  'required',
        'email'      =>  'required|email|unique:users',
        'password'   =>  'required|min:8',
        'phoneno'    =>  'required'
    ]);

    if ($validator->fails()){
        return response($validator->getMessageBag()->jsonSerialize(), Response::HTTP_UNPROCESSABLE_ENTITY); 
    }

    $firstname = $request->firstname;
    $lastname = $request->lastname;
    $email = $request->email;
    $password = $request->password;
    $phoneno = $request->phoneno;
    return response($request, Response::HTTP_OK);
}

从我的前端,我正在使用 axios 发出 ajax 请求,我将表单数据发送为:

    let formdata = this.user;
    axios.post('/api/user', {
        data: formdata
    }).then((data) => {
        console.log(data);
    })
    .catch((error) => {
        console.log(error);
    });

但是在出现错误的情况下,我没有得到我从 $validator->fails()检查我只能看到:

有没有办法获取我传递的 json 错误?

【问题讨论】:

  • 您确定您符合验证要求吗?您是否尝试过查看请求中可能包含的内容? dd($request->all());
  • 肯定,表单数据到达控制器,我关心的不是数据到达控制器,而是将错误作为 json 返回到视图...如果我让数据全部通过验证检查,我不会遇到任何问题
  • @AhmedNourJamalEl-Din 数据被发送到控制器,我只是希望能够在验证失败时得到消息包中的错误
  • 你是否在标题中输入了“Accept : application/json”?
  • @rezabaghiee 答案解决了这个问题..

标签: ajax laravel axios


【解决方案1】:

类似这样的:

return response()->json($validator->errors(), Response::HTTP_UNPROCESSABLE_ENTITY)

编辑:

error.response.data 有错误信息

error.response.status 有错误代码

【讨论】:

  • 相同的输出可以从控制台看到 422 响应,但看不到数据
  • 检查问题中的图像,即console.log(error) 的输出,但我实际上想要从控制器发送的数据。
  • 请添加此console.log('errorType', typeof error); 并发布消息
  • 输出为object
  • 其实你可以在控制台看到error对象的可用属性,我想你需要这两个属性:error.response.dataerror.response.status,把它们记录下来,把你得到的东西贴出来
猜你喜欢
  • 2019-12-01
  • 2020-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多