[英]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.