繁体   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