Ajax jquery.min.js:4 POST 500(内部服务器错误)laravel 5

时间:2016-12-02 10:51:30

标签: ajax laravel-5 http-status-code-500

我从Ajax调用中得到了这个错误!它从复选框获取操作,然后通过Ajax将数据发送到控制器方法,

jquery.min.js:4 POST http://localhost:8000/listhotelregisration 500 (Internal Server Error)

这是代码html部分:

    <div style="display:block">
      <div>My hotel Lists</div>
        @foreach($myLists as $key => $val)
            {{ $val['name'] }
            {!! Form::checkbox($val['name'], $val['id'].','.$value['id']) !!} <br>
        @endforeach
       </div>

Ajax部分:

 $(function() {
              $("input[type='checkbox']").change(function() {
               var smi  = $(this).val();
                   // alert(smi);
               $.ajax({
                url: 'listhotelregisration',
                type: "post",
                data: {'checko':smi},
                success: function(data){
                  //alert(data);
                }
              });  

   });

路线部分:

Route::post('listhotelregisration', 'ListhotelController@create');

控制器部分:

public function create(Request $request)
{
    $listhotel = new listhotel;
    $data = $request->all();
    $dataPrim = explode(",", $data);

    $listhotel->id_list= $dataPrim[0];
    $listhotel->id_hotel= $dataPrim[1]; 

    $listhotel->save();
    $response = "ok";
    return response ()->json ($response);

}

2 个答案:

答案 0 :(得分:1)

Laravel 5中的Ajax

这主要是由于laravel为我们提供开箱即用的VerifyCSRFToken中间件。当我们的请求发生令牌不匹配时,它会响应内部服务器错误(500)。

我们需要发送带有令牌的AJAX请求发送到我们的浏览器。 CSRF令牌主要存储在元标记中,您可以将其放在任何位置

$.ajaxSetup

为将来的Ajax请求设置默认值

<强>解决方案

&#13;
&#13;
$(document).ready(function(){
  $.ajaxSetup({
    headers: {
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
  });
});
&#13;
&#13;
&#13;

希望这有帮助。

答案 1 :(得分:0)

错误500表示这是服务器错误。 要确切地知道出了什么问题,您需要检查服务器返回的响应。

无论如何,我已经调整了以下部分:

使用Javascript:

 $(function() {
          $("input[type='checkbox']").change(function() {
           var id_list  = $(this).attr('id_list');
           var id_hotel  = $(this).attr('id_hotel');  

           $.ajax({
            url: 'listhotelregisration',
            type: "post",
            data: {
                    'id_list': id_list,
                    'id_hotel':id_hotel
                  }
             }
       });  
  });

控制器:

public function create(Request $request)
{
  $data = $request->only(['id_list', 'id_hotel']);
  $listhotel = listhotel::firstOrCreate($data)
  return response ()->json ("OK");
}