【问题标题】:Ajax search producing 404 error Laravel 7Ajax 搜索产生 404 错误 Laravel 7
【发布时间】:2020-12-26 19:26:29
【问题描述】:

我有一个在 laravel 5 中工作的 ajax 搜索功能,在 laravel 7 上不起作用。我正在使用旧版本来学习和升级所有内容,现在在将数据发布到我的路线时,我在 ajax 中遇到 404 错误。我对 Laravel 很陌生,所以仍在学习和修改代码以测试结果。基本上我试图将两个变量传递给控制器​​,代码都适用于旧版本。任何帮助和指导将不胜感激。

路线

Route::get('/search','SearchController@index');
Route::get('/search/action','SearchController@search')->name('search.action');

控制器

 public function search(Request $request)
    {
        if ($request->ajax()) {
            $output = "";
            $figures = figures::where('type', 'LIKE', '%' . $request->search . "%")->where('base', 'LIKE', '%' . $request->txt . "%")->get();
            $prodcount = $figures->count();
            if ($prodcount >= '1') {

                }
                return Response($output);
            } else {

                }
                return Response($output);
            }
        }
    }

阿贾克斯

    <script type="text/javascript">
        //$('#search').on('keyup',function(){
  //  $("#topping").change(function () {
    $("#but").click(function () {
        $value=$('#topping').val();
        $value2=$('#search').val();
            $.ajax({
                type : 'get',
               url : '{{URL::to('search/action')}}',
                data:{'search':$value, 'txt':$value2},
                success:function(data){
                    $('tbody').html(data);
//console.log(data);
                }
            });
    })
    </script>
    <script type="text/javascript">
        $.ajaxSetup({ headers: { 'csrftoken' : '{{ csrf_token() }}' } });
    </script>

【问题讨论】:

  • 试试url : '{{URL::to('search/action')}}',到url : {{ route('search/action') }}
  • 感谢您的建议,我已经更新了代码,但仍然得到相同的控制台错误:GET 127.0.0.1:8001/search/action?search=dc&txt= 500 (Internal Server Error)
  • 感谢您的帮助,这确实解决了问题。

标签: php laravel


【解决方案1】:

我可以看到 2 个错误

  • $value2=$('#search').val(); 到 var value2=$('#search').val();
  • url : '{{URL::to('search/action')}}', 到 url : {{ route('search.action') }}
<script type="text/javascript">
    //$('#search').on('keyup',function(){
//  $("#topping").change(function () {
$("#but").click(function () {
    var value=$('#topping').val();
    var value2=$('#search').val();
        $.ajax({
            type : 'get',
           url : '{{ route('search/action')}}',
            data:{'search':value, 'txt':value2},
            success:function(data){
                $('tbody').html(data);
                //console.log(data);
            }
        });
})
</script>
<script type="text/javascript">
    $.ajaxSetup({ headers: { 'csrftoken' : '{{ csrf_token() }}' } });
</script>

这是固定代码试试吧

【讨论】:

  • 我已按照建议更新了代码,但我仍然收到相同的控制台错误:GET 127.0.0.1:8001/search/action?search=dc&txt= 500 (Internal Server Error)
  • @insomniac22 你可以检查网络标签并查看有关错误的更多详细信息
  • 路由更新后网络在我的sql查询中显示错误。代码不起作用。非常感谢,我从来不知道要检查网络选项卡以调试 laravel 错误。
猜你喜欢
  • 1970-01-01
  • 2014-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-16
  • 2014-06-21
  • 1970-01-01
相关资源
最近更新 更多