服务器响应状态为 400 () Laravel 和 Vue js?

Posted

技术标签:

【中文标题】服务器响应状态为 400 () Laravel 和 Vue js?【英文标题】:The server responded with a status of 400 () Laravel and 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 错误意味着错误的请求,您需要检查您发送的有效负载是什么以及为什么服务器无法处理它 【参考方案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 文件中的代码。我不认为这些功能会造成任何伤害,但确实如此。删除它们后,一切正常并恢复正常。谢谢。

【讨论】:

以上是关于服务器响应状态为 400 () Laravel 和 Vue js?的主要内容,如果未能解决你的问题,请参考以下文章

Steam 发布请求 - 加载资源失败:服务器响应状态为 400(错误请求)

我尝试使用 passport.js 对用户进行身份验证,但它给了我一个错误**服务器响应状态为 400(错误请求)**

当 url 响应状态代码为 400 时如何使用 C# .Net Core 5 Blazor 服务器端应用程序中的中间件重定向到主页

Laravel 不会遵守状态码

使用 OAuth 2.0 和服务帐户的 Gmail IMAP 失败,状态为 400

预检响应具有无效的 HTTP 状态代码 400 - aspx