使用 jquery post 方法在控制器中重定向路由不起作用?

问题描述 投票:0回答:1

在我的项目中,我实现了这个功能:

public function createGuest(Request $request) {
            $check1 = AdminUser::where('username', $request['user_name'])->count();
            $previous = "localhost:8000";
            if ($check1 > 0) return null; // user exists

            $user               = new AdminUser();
            $user->username     = $request['username'];
            $user->password     = $request['password'];
            $user->save();
            $user->roles()->attach('3');

            return redirect($previous);
}

对于路线,我定义了这个:

    $router->post('/guest-creates', [GuestController::class, "createGuest"])->name('createGuest');

运行 jQuery 代码后:

<body>
       <form method="post" role="form" action="/create-guest" class="php-email-form">
        ..... HTML 
        <button type="button" class="btn btn-primary" onClick="signUps()">Đăng ký</button>
    </form>
</body>
<script>
    async function signUps() {
        let url = "/create-guest";
        let username        = $("input[name=username]").val();
        let password        = $("input[name=password]").val();

        let data = {
            "_token"        : "{{ csrf_token() }}",
            "username"          : username,
            "password"          : password,
        }
        let res = await $.post(url, data); //errors come here
    }
</script>

res
变量现在拥有所有html页面,就像我点击它然后不再重定向一样?

res = "<!DOCTYPE html>
<html lang="zxx">

<head>
    <meta charset="UTF-8">
    <meta name="description" content="Ogani Template">
    <meta name="keywords" content="Ogani, unica, creative, html">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
    <meta name="csrf-token" content="LOV3ISszq8gGw0ooUfoQZb39h16OX2y7TXw60us0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>This is home page</title>

    
    <div id="fb-root"></div> ...."

并通知

500 (Internal Server Error)

如果我处理了redirect()->to()错误,是不是错了?为什么我无法使用 js 中的

async
POST 方法来重定向()->to()?

jquery laravel
1个回答
0
投票

您收到 500(内部服务器错误),因为路由中的 URL 和 ajax 请求中的 URL 不同。所以你只需要在你的函数中通过下面给定的行更改这一行。

 let url = "/guest-creates";
© www.soinside.com 2019 - 2024. All rights reserved.