php - Ajax 和 Laravel 500(内部服务器错误)
问题描述
我正在尝试制作一个简单的小型应用程序来学习 ajax,但我在这里遇到了严重的问题。这里有一些片段,当我点击提交时,表单没有做任何事情,只是在 chrome 的控制台中显示错误 500。如果我尝试在成功的 ajax 函数中显示某些内容,则请求显示“未定义”。太感谢了!
这是我的控制器
public function store(Request $request)
{
$response = array(
'msg' => 'Thank you nephew'
);
$request->validate([
'name' => 'required|min:3',
'mobile' => 'required',
'address' => 'nullable',
'email' => 'nullable'
]);
$values = $request->all();
echo $values;
return Response::json($response);
}
这是我的 Ajax 脚本
<script>
$('#create-form').on('submit', function (event) {
event.preventDefault();
let name = $("input[name=name]").val();
let mobile = $("input[name=mobile]").val();
let email = $("input[name=email]").val();
let address = $("input[name=address]").val();
console.log(name);
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('input[name="_token"]').val()
}
});
$.ajax({
type: 'POST',
url: '{{ route('addresses.store') }}',
data: {name: name, mobile: mobile, email: email, address: address, token: $('input[name="_token"]').val()},
success: function (data) {
console.log(data);
}
});
});
</script>
这是刀片模态
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Create address</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="result"></div>
<form action="{{ route('addresses.store') }}" method="post" id="create-form">
@csrf
<div class="form-group">
<label for="">Name</label>
<input type="text" class="sequence-input" name="name"/>
</div>
<div class="form-group">
<label for="#">Mobile</label>
<input type="text" class="sequence-input" name="mobile"/>
</div>
<div class="form-group">
<label for="#">Address</label>
<textarea name="address" class="sequence-input" cols="30" rows="6"></textarea>
</div>
<div class="form-group">
<label for="#">Email Address</label>
<input type="text" class="sequence-input" name="email"/>
</div>
<div class="form-group">
<button type="submit" id="create" class="sequence-btn sequence-btn--primary">Create</button>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="sequence-btn sequence-btn--danger" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
解决方案
尝试在名称的值上使用单引号let mobile = $("input[name='mobile']").val();
等
或者
$.ajax({
type: 'POST',
url: '{{ route('addresses.store') }}',
data: $(this).serialize(),
success: function (data) {
console.log(data);
}
});
推荐阅读
- c# - 如果页面未显示在框架中,WPF Visualbrush 不会更新
- java - 无法将 Log4j2 AsyncAppender 与 log4j2.properties 一起使用
- javascript - 根据文件名获取附加的formData文件索引
- powershell - 为什么即使打开 -ErrorAction Stop,我的 try catch 错误也会成功传递?
- python - 如何通过 python 连接以太网连接的相机(Flir AX8 相机)
- python - 如何转换 pandas Dataframe 中列的值?
- html - HTML 创建一个等大小的方形网格图片系统
- ios - Facebook 似乎随机出现在我的项目中
- swiftui - SwiftUI 动画列表行的展开和折叠
- php - 由于 CORS“Access-Control-Allow-Origin”不存在,phpCAS 注销失败