簡體   English   中英

插入 AJAX Laravel 返回 500 內部服務器錯誤

[英]Insert into AJAX Laravel return 500 Internal Server Error

我正在嘗試使用 AJAX 在 Laravel 中進行簡單的插入,但我不斷收到 500 內部服務器錯誤。 我相信我已經正確地包含了 csrf_field。 任何幫助是極大的贊賞!

網頁.php

Route::get( '/test', 'TestController@index');
Route::post('/korisnici', 'TestController@korisnici' )->name('korisnici');

測試刀片.php

<script>
$(document).ready(function(){
    var token = $('meta[name="csrf-token"]').attr('content');

        $("#forma").click(function(){

        var fname=$("#fname").val();
        var email=$("#email").val();

        $.ajax({
            type:"POST",
            url:"{{route('korisnici')}}",
            data:"fname=" + fname + "&email=" + email + "&token=" + token,
            success:function(data){     
                alert(data);
            }
        }); 

    });

});

</script>

{{ csrf_field() }}
<input type="text" name="fname" id="fname" placeholder="first name"><br>
<input type="text" name="email"  id="email" placeholder="Email"><br>
<input type="submit" id="forma">

測試控制器.php

public function korisnici(Request $request){
    $fname=$request->input("fname");
    $email=$request->input("email");

      $this->validate($request,[
      'email' => 'required|email',
      'fname' => 'required'
      ]);

    $data=array("ime"=>$fname,"email"=>$email);

    DB::table("korisnik")->insert($data);

    echo "ubaceno";
}

如下傳遞你的ajax調用。 你忘了提到e.preventDefault(); 並在標題中傳遞您的csrf_token

$("#forma").click(function(e){

e.preventDefault();

var fname=$("#fname").val();
var email=$("#email").val();

$.ajax({
    url : "{{route('korisnici')}}",
    type: 'POST',
    headers: {
      'X-CSRF-TOKEN': '{{ csrf_token() }}'
    },
    data : {fname:fname,email:email},

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

    },

  });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM