【问题标题】:Missing required parameters for [Route: sender] [URI: {name}/{code}] [Missing parameters: name, code][路由:发件人] [URI:{name}/{code}] [缺少参数:名称,代码] 缺少必需参数
【发布时间】:2021-04-11 04:00:05
【问题描述】:

这可能看起来重复,但我在使用 AJAX 时遇到了这个问题,我不知道如何解决它。

路由:web.php

Route::get('/{name}/{code}', 'TestController@counter');
Route::post('/{name}/{code}', 'TestController@sender')->name('sender');

控制器:TestController.php

public function counter() {
    return view('room');
}

public function sender(Request $request) {
    $xd = array(
        '1' => request('text'), 
        '2' => Request::url()
    );
    event(new TestEvent($xd));
}

查看:room.blade.php:

<!doctype html>
<html lang="en">
    <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    </head>
    <body>
        <div>
            <form>
                @csrf
                <label for="lname">Code:</label><br>
                <input type="text" id="text" name="text"><br><br>
                <input type="submit" value="Submit">
            </form>
        </div>
        <script type="text/javascript">
            $("form").on("submit", function (e) {
                var data = $(this).serialize();
                $.ajax({
                    type: "POST",
                    URL: "{{ route('sender') }}",
                    data: data,
                    success: function () {
                        console.log("works");
                    }
                });
                e.preventDefault();
            });
        </script>
    </body>
</html>

错误是 AJAX 如果我把它拿出来我没有收到错误。 AJAX代码是调用Controller而不重定向到另一个页面。知道如何解决吗?

【问题讨论】:

  • 从您的路线中删除 '/{name}/{code}'
  • 我需要它们,它不是固定路线。有时是 /hello/123,有时是 /hello/345
  • 你没有发送参数...
  • 我如何发送它们?我需要改变什么?
  • 这样发送:URL: "/"+ name +"/" + code",

标签: javascript jquery ajax laravel


【解决方案1】:

使用这条路线:

路由:web.php

Route::get('', 'TestController@counter');
Route::post('', 'TestController@sender')->name('sender');

如果要发送参数,请在路由中定义参数,如下所示:

路由:web.php

Route::get('/{name}/{code}', 'TestController@counter');
Route::post('/{name}/{code}', 'TestController@sender')->name('sender');

控制器:TestController.php

public function counter($name, $code) {
    //---Note: Use $name and $code in your method
    return view('room', compact('name', $code));
}

public function sender(Request $request, $name, $code) {
    //---Note: Use Those parameters in your method
    $xd = array(
        '1' => request('text'), 
        '2' => Request::url()
    );
    event(new TestEvent($xd));
}

查看:room.blade.php:

<!doctype html>
<html lang="en">
    <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    </head>
    <body>
        <div>
            <form>
                @csrf
                <label for="lname">Code:</label><br>
                <input type="text" id="text" name="text">
                <br />
                <br />
                <input type="submit" value="Submit">
            </form>
        </div>
        <script type="text/javascript">
            $("form").on("submit", function (e) {
                var data = $(this).serialize();
                $.ajax({
                    type: "POST",
                    URL: "{{ route('sender', ['name' => '', 'code' => '']) }}",
                    data: data,
                    success: function () {
                        console.log("works");
                    }
                });
                e.preventDefault();
            });
        </script>
    </body>
</html>

【讨论】:

  • 我需要动态路由。有时是/hello/123,有时是/hello/321
  • 现在我得到:compact(): Undefined variable: ABCD23 in the url:127.0.0.1:8000/hello/ABCD23
  • 我还应该使用 laravel 8 添加我。我不知道它是否修改了这个 "{{ route('sender', ['name' => '', 'code' => ' ']) }}",
  • 好的,在你的帮助下修复了它,但改变了一些东西
  • 现在出现此错误:500(内部服务器错误)发送@jquery.min.js:2 ajax@jquery.min.js:2(匿名)@ABCD23:137 调度@jquery.min。 js:2 v.handle @ jquery.min.js:2 知道如何解决吗?
猜你喜欢
  • 1970-01-01
  • 2022-06-22
  • 1970-01-01
  • 2023-02-07
  • 2019-04-21
  • 1970-01-01
  • 2021-06-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多