2015-11-23 33 views
0

我總是得到內部服務器錯誤,我正在尋找解決方案,但無法獲得解決我的問題的最佳解決方案。 我該如何解決這個問題? 內部服務器錯誤500 她是我的代碼在laravel 5.1上使用此代碼獲取內部服務器錯誤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> 
+0

你能檢查你的錯誤日誌以獲得關於錯誤的更多細節嗎? –

+0

是的,檢查你的Laravel日誌,看它是否給出了錯誤的更多細節,否則你的服務器日誌可能會給你更多的信息。 – James

+0

這是我的日誌 [2015-11-23 04:29:14] local.ERROR:異常'Symfony \ Component \ Debug \ Exception \ FatalErrorException'消息'Class'Str'not found'in D:\ go (輸入:: get('term')); //輸入:: get('term')); //輸入:get('term'); –

回答

0

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> 
+0

我得到了這個錯誤:'未捕獲的SyntaxError:意外的令牌'在這裏'select:function(event,ui){0} }' –

+0

您是否在頁面頂部添加了

+0

是的,我看到日誌和我的問題'海峽:: lower', –

相關問題