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