【发布时间】:2021-03-03 16:33:04
【问题描述】:
我使用 laravel 和 ajax 制作了一个简单的表单,它只接收来自用户的电子邮件来订阅时事通讯。提交表单时,它既不显示成功消息,也不显示错误消息。此外,表单验证不起作用。这是我处理请求的控制器
public function store(Request $request)
{
$count = Subscription::where('email', '=' ,$request->email)->count();
if($count == 1) {
return redirect()->route('index')
->with('error','ERROR!! Email Already Subscribed.');
}
else
{
$request->validate([
'email' => 'required',
]);
Subscription::create($request->all());
return redirect()->route('home')
->with('success','Subscribed !!');
}
}
在这里,我检查了电子邮件是否已经注册,并且这个逻辑工作正常。如果电子邮件已经存在,则不会插入记录,但不会显示错误消息。
这是我用刀片编写的 Ajax 文件,用于监听表单请求并重定向到控制器
<script type="text/javascript">
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$('#subsEmail').on('submit',function(event){
event.preventDefault();
let email = $('#email').val();
$.ajax({
url:"{{ url('/subscription') }}",
type:"POST",
data:{
email:email,
_token:"{{ csrf_token() }}",
}
});
});
</script>
提前致谢。
【问题讨论】: