嗨,这是我的代码,我试图为laravel ajax值提供其非常简单的ajax代码,但我收到内部错误500,而rly不知道为什么...
这是我的ajax代码。和输入
<body>
<div class="container">
<div class="form" a >
<form class="post_form">
@csrf
<input type="text" id ='text' name="text" value="">
<input type ='submit'class= 'aeee' val ='iobani'>
<button type="button" class= 'aa' name="button">aa</button>
</form>
</div>
<script>
$(document).ready(function(){
$(".post_form").on('submit', function(e) {
var post = $('.post_form').serialize();
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
method: 'POST',
url: '/add_com',
data: post,
dataType: "json",
success:function(data){
console.log('ess');
},
error:function(data){
console.log('error');
}
});
e.preventDefault();
});
});
</script>
</body>
这是laravel中的代码 公共功能存储(请求$ request) {
$post = Post::create([
'text' => $request->text,
]);
$view = view("/",compact('post'))->render();
return response()->json(['html'=>$view]);
}
我认为我已经尝试了所有方法,但是仍然有500错误提示有人可以告诉我为什么吗?
答案 0 :(得分:0)
更改
var post = $('.post_form').serialize();
到
var post = $('.post_form').serializeArray();
对于您的情况,此转换表单输入为
[{ "name": "text", "value": "what-ever-passed-from-the-form"}]
因此,您可以像在laravel代码中一样进行操作
$post = Post::create([
'text' => $request->text,
]);