【问题标题】:The server responded with a status of 400 () Laravel and Vue js?服务器响应状态为 400 () Laravel 和 Vue js?
【发布时间】:2021-01-28 10:22:04
【问题描述】:

这很奇怪,我正在用 Laravel 和 Vue js 构建一个 SPA。我正在使用 Laravel Passport 和 JWT 进行身份验证。突然之间,当我提交任何表单时,我的验证错误都没有显示。我不断收到此错误:

Failed to load resource: the server responded with a status of 400 ()

如果您填写表单并单击提交,应用程序中的一切仍然有效,我会看到成功消息,并且数据会保存在数据库中。我不知道是什么原因造成的,起初我认为这与我实现的 Recaptcha 代码有关,但现在,我不能 100% 确定这是问题所在,因为我删除了所有相关代码并试图再次提交我的表单,仍然得到400 error

我知道这些细节非常模糊,但如果有人知道这可能与它有什么关系,将不胜感激。

谢谢。

【问题讨论】:

  • 400 错误意味着错误的请求,您需要检查您发送的有效负载是什么以及为什么服务器无法处理它

标签: json laravel vue.js


【解决方案1】:

如果您使用 API 调用,则需要返回 JSON 错误句柄。

用于验证的 Laravel 默认错误处理是通过刀片抛出异常,您可以使用 $errors 访问它

如果您想进行自己的验证,请使用 validator 外观。

use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;

public function store(Request $request) {
      $validation = Validator::make($request->all(), [
        'name' => 'required',
        'email' => 'required',
        'password' => 'required',
      ]);

      if($validation->fails()) {
        return response()->json([
          'status' => 'failed',
          'message' => $validation->errors(),
        ], 400);
      }
}

【讨论】:

    【解决方案2】:

    感谢那些评论或回答的人。我确实想通了。我在 Exceptions/Handler.php 文件中添加了几个函数。我基于免费的 Youtube 课程构建了这个 SPA,并在学习了 Udemy 上的另一门付费课程后,获取了放在 Handler.php 文件中的代码。我不认为这些功能会造成任何伤害,但确实如此。删除它们后,一切正常并恢复正常。谢谢。

    【讨论】:

      猜你喜欢
      • 2016-09-11
      • 1970-01-01
      • 2016-07-08
      • 2021-01-16
      • 2021-04-12
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      • 2016-09-19
      相关资源
      最近更新 更多