2016-12-02 4 views
0

Ich habe diesen Fehler von Ajax Anruf erhalten! es ist Aktion von Checkbox erhalten dann Daten von Ajax Controller-Methode senden,Ajax jquery.min.js: 4 POST 500 (Interner Serverfehler) Laravel 5

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

Hier ist der Code HTML-Teil:

<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 Teil:

$(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); 
       } 
       }); 

    }); 

Strecke Teil:

Route::post('listhotelregisration', '[email protected]'); 

Kontrolle er Teil:

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); 

} 
+0

Eine Frage zum AJAX-Teil. Ich sehe kein CSRF-Token, das zusammen mit der AJAX-Anfrage gesendet wurde. Der 500-Fehler kann daran liegen, dass das CSRF-Token nicht verifiziert wurde. –

+0

Ja, ich habe gerade gefunden, dass ich "csrf-token" Header/Eingabe hinzufügen muss, danke –

Antwort

0

Fehler 500 bedeutet, dass dies ein Serverfehler ist. Um genau zu wissen, was schief gelaufen ist, müssen Sie die Antwort des Servers überprüfen.

Auf jeden Fall würde ich schon Ihre folgenden Stücke einstellen:

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 
        } 
      } 
     }); 
    }); 

Controller:

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

Ich habe "csrf-Token" Header/Eingabe Dankeschön –

1

Ajax in Laravel 5

Dies ist vor allem aufgrund der VerifyCSRFToken Mitte learware, dass laravel uns out-of-the-box liefern. Es reagiert auf einen internen Serverfehler (500), wenn bei unseren Anforderungen ein Token-Konflikt auftritt.

Wir müssen unsere AJAX-Anfrage mit Token gesendet an unseren Browser senden. Die CSRF-Token wird meist in der Meta-Tag gespeichert sind, können Sie es jeder wo setzen, obwohl

$.ajaxSetup

Standardwerte für die zukünftige Ajax

fordert

Lösung

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

Hoffe das hilft.

Verwandte Themen