当前位置: 首页 > 知识库问答 >
问题:

避免验证后的Laravel重定向

童琪
2023-03-14

我正在对我的Laravel控制器进行简单验证:

public function updateInfo(Request $request) {

        $validator = $request->validate([
            "name" => ["string", "nullable"],
            "email" => ["email", "nullable"],
            "currentPassword" => ["password:api"]
        ]);

        return json_encode($validator);
}

我的问题是,如果失败,这个验证会将我重定向到主,我通过AJAX发出请求,我知道Laravel会检测到通过Ajax发出的请求,但它只有在正常请求(我发送的典型请求标题与内容类型应用程序/json和正文中我发送了一个正常的JSON

但是Laravel无法检测到当te Ajax请求不是内容类型应用程序/json时,我使用的是JavaScript的FormData()对象,因此,我没有发送标题内容类型应用程序/json,而是在正文中发送了FormData对象。

我认为这是模拟一个典型的HTTP请求重新加载页面,因此Laravel无法检测到它,但它给我的ajax响应带来了麻烦,因为Laravel响应重定向,在我的Ajax响应中,我捕获了超文本标记语言代码主页。

我能做什么?

共有1个答案

帅博远
2023-03-14

您可以将validator()helper函数与validate()方法结合使用。它将帮助您处理AJAX调用和正常调用

validator($request->all(), [
    "name" => ["string", "nullable"],
    "email" => ["email", "nullable"],
    "currentPassword" => ["password:api"]
])->validate();
 类似资料:
  • 是否可以将用户重定向到Laravel中的POST路由。我有两张表格。表格一发送到包含表格二的路线,表格二发送到最终路线,然后进行验证。如果

  • 我想重定向用户回到他们在Laravel 5成功登录后登录页面之前查看的页面。目前,如果用户写了一个错误的用户名/密码,他会被重定向到登录页面,显示错误,我想保持这种方式。另外,我希望当用户点击页面上的登录按钮时,以及当用户被自动重定向到登录页面时,此功能能够正常工作。 在我看来 是这里的关键,但我不知道如何让它“重定向到不是登录页的最后一页”。感谢您的帮助。

  • 遵循这个指南:https://www.youtube.com/watch?v=bqkt6eSsRZs 添加了从laravel docs的auth路由 创建登录/注册视图 创建 /home路线 自定义AuthController: 尝试访问身份验证/登录时,我遇到以下错误: 请求中出现错误异常。php第775行:。。未根据请求设置会话存储。 已将身份验证路由移动到中间件组。 成功注册,在数据库和会话

  • 我所有的主要组件都有如下部分: 有了这个,我正在检查是否有用户登录。如果这是假的,则用户将被重定向到登录路由。由于这个部分用于许多组件,我在想如果我可以优化这个得到一个DRY代码... 使现代化 我正在使用反应路由器:

  • 我正在laravel中创建一个多身份验证系统,其中有两种类型的用户:管理员(由我创建)和用户(使用本地laravel身份验证系统)。 如果我以用户身份登录,当我尝试访问登录页面时,当我已经登录,它会将我重定向回仪表板,但如果我以管理员身份登录,当我再次访问管理员登录页面时,它会让我再次登录,尽管已经作为管理员登录。 以下是我的重定向身份验证类代码: 有人能解释一下发生了什么事吗?

  • 我正在创建一个laravel应用程序与自定义多重身份验证。我正在跟随这篇文章进行多重身份验证。https://pusher.com/tutorials/multiple-authentication-guards-laravel 我已经创建了登录和注册控制器定义的警卫和提供者,一切正常,我能够注册用户并登录他们。我写了一页(http://127.0.0.1:8000/admin)只有当管理员登录时