在laravel 5.1上使用此代码获取内部服务器错误500

Get Internal Server Error 500 using this code on laravel 5.1

本文关键字:获取 代码 内部 服务器 错误 laravel      更新时间:2023-09-26

我总是遇到内部服务器错误,我一直在寻找解决方案,但我找不到解决问题的最佳解决方案。如何解决此问题?内部服务器错误500。她是我的代码

路由器:

Route::get('getdata', function()
{
$term = Str::lower(Input::get('term'));
$data = array(
    'R' => 'Red',
    'O' => 'Orange',
    'Y' => 'Yellow',
    'G' => 'Green',
    'B' => 'Blue',
    'I' => 'Indigo',
    'V' => 'Violet',
);
$return_array = array();
foreach ($data as $k => $v) {
    if (strpos(Str::lower($v), $term) !== FALSE) {
        $return_array[] = array('value' => $v, 'id' =>$k);
    }
}
return Response::json($return_array);
});

我的刀片:

    <?= Form::open() ?>
    <?= Form::label('auto', 'Find a color: ') ?>
    <?= Form::text('auto', '', array('id' => 'auto'))?>
    <br>
    <?= Form::label('response', 'Our color key: ') ?>
    <?= Form::text('response', '', array('id' =>'response', 'disabled' => 'disabled')) ?>
    <?= Form::close() ?>
    <script type="text/javascript">
        $(function() {
            $("#auto").autocomplete({
                source: "getdata",
                minLength: 1,
                select: function( event, ui ) {
                    $('#response').val(ui.item.id);
                }
            });
        });
    </script>

Laravel 5.1使用一种名为csrf保护的东西来保护站点免受跨站点请求伪造(csrf)的影响。对于任何类型的表单值POST到服务器,Laravel都会放置一个隐藏的输入字段,其中包含这样的有效令牌。该令牌由laravel为每个应用程序生成。像这样:

<input name="_token" type="hidden" value="oEUWsddRCEER123btOyuiZdATJANP83uERSz">

任何没有此令牌的请求都将被视为伪造,laravel将拒绝该请求并给他们一个内部服务器错误。

因此,要发出有效的ajax请求,您需要指定应用程序的有效令牌。示例(取自laravel.io):

<meta name="csrf_token" content="{{ csrf_token() }}

然后在ajax调用期间,对ajax调用进行一点自定义,以包含令牌数据:我还没有测试过这个代码。但你会有一些想法:

<script type="text/javascript">
    $(function() {
        $("#auto").autocomplete({
            source: function (request, response) {
                 $.ajax({
                  type: "POST",
                  beforeSend: function (xhr) {
                  var token = $('meta[name="csrf_token"]').attr('content');
                  if (token) {
                      return xhr.setRequestHeader('X-CSRF-TOKEN', token);
                     }
                  },
                  url:"getdata",
                  data: {},
                  success: response,
                }),
            select: function( event, ui ) {
                $('#response').val(ui.item.id);
            }
        });
    });
</script>