2016-03-21 38 views
0

laravel'de ajax isteği göndermeye çalışıyorum 5.1. ama ajax isteğini alamıyorum. her zaman HTTP isteği. Laravel ajax gönderisi (ajax isteği bulunamadı)

Bir html formu

<form role="form" method="POST" action="/admin/save-drug" id="add_drug"> 

<label for="drugs_name">Drug Name <span class="text-danger">*</span></label> 
<input type="text" class="form-control" name="drugs_name" id="drugs_name"> 

<label for="drugs_name">Drug Name <span class="text-danger">*</span></label> 
<input type="text" class="form-control" name="drugs_name" id="drugs_name"> 

<button type="submit" id="save_drug" class="btn btn-default waves-effect waves-light btn-md"> 
</form> 

var Ve benim koduyla neyin yanlış "HTTP"

$(document).ready(function(){ 
      $('#add_drug').submit(function (){ 
       $.ajax({ 
        url: './admin/save-drug', 
        type: 'POST', 
        data : { 'drugs_name':$('input[name=drugs_name]').val()}, 

         success: function(data){ 
          alert(data) 
         } 
       }); 
      }); 
     }); 

Benim Kontrolör

public function saveDrug(Request $request){ 
     if($request->ajax()){ 
      return "AJAX"; 
     }else{ 
      return "HTTP"; 
     } 
    } 

O alwayes dönüş ajax kullanmak ?? ?

cevap

1

csrf_token ekle, normalde tarayıcı olarak göndererek formu durdurma şey yok.

Tahminimce, müfettişinizi açarsanız, ağ günlüğünü kaydetmeyi açın ve formu gönderin, hem AJAX isteğinizi hem de standart form gönderiminizi göreceksiniz.

Form gönderme etkinliğini tutuklamanız ve böylece AJAX'ınızın çalışmasına izin vermek, ancak formu normal olarak göndermekten vazgeçmek üzere tutmanız gerekebilir. Ben csrf_token (kullanmak

$(document).ready(function(){ 
    $('#add_drug').submit(function (e) { 
     e.preventDefault(); //Stop the form from submitting 
     $.ajax({ 
      url: './admin/save-drug', 
      type: 'POST', 
      data : { 'drugs_name':$('input[name=drugs_name]').val()}, 

       success: function(data){ 
        alert(data) 
       } 
     }); 
    }); 
}); 
+0

Artık yeni bir sorun, 500 dahili sunucu hatası. belki de csrf jetonu kullanıyorum başlıklarını kullanıyorum: {'X-CSRF-TOKEN': $ ('meta [name = "csrf-jeton"]') attr ('content')}, $. ajax() .. ama çelik bu hata –

+0

Hata günlüklerinizi kontrol edin ve gerçek hatayı - Apache günlüğü, nginx günlüğü veya kullanımdaysa laravel'in kendi günlüğünü bulabileceğinize bakın. Herhangi bir şey olabilir - sözdizimi hatası, mantık hatası, referans hatası, vb. Her iki şekilde de, formu göndermeden AJAX çağrısı gönderememenin temel problemi çözülüyor mu? – stratedge

0

bu deneyin: Ben kodunuzu Görebildiğimiz kadarıyla

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 
<script type="text/javascript">  
$(document).ready(function(){ 
      var token='{{csrf_token()}}'; 
       $('#add_drug').submit(function (){ 
        $.ajax({ 
         url: './admin/save-drug', 
         type: 'POST', 
         data : { 'drugs_name':$('input[name=drugs_name]').val(),_token:token}, 
          success: function(data){ 
           alert(data) 
          } 
        }); 
        return false; 
       }); 
      }); 
</script> 
+0

ustam bıçak

+0

hala aynı sorun .. –

+0

konsolunuzda bir hata olup olmadığını kontrol edin. Benim için sorun yok. – darkvirus24