Car*_*lly 5 php validation ajax form-data laravel
我正在我的 Laravel 控制器上做一个简单的验证:
public function updateInfo(Request $request) {
$validator = $request->validate([
"name" => ["string", "nullable"],
"email" => ["email", "nullable"],
"currentPassword" => ["password:api"]
]);
return json_encode($validator);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果失败,此验证会将我重定向到主页,并且我正在通过 AJAX 发出请求,我知道 Laravel 检测到请求何时通过 Ajax,但它仅在正常请求时才有效(在我Content Type application/json在正文中发送标头并在正文中发送了一个普通的 JSON
但是 Laravel 无法检测何时 te Ajax 请求不是Content Type application/json,我使用的FormData()是 JavaScript 对象,因此,我没有发送 header Content Type application/json,并且在正文中我发送了 FormData 对象。
我认为它模拟了重新加载页面的典型 HTTP 请求,因此 Laravel 无法检测到它,但它给我的 ajax 响应带来了麻烦,因为 Laravel 响应重定向,而在我的 Ajax 响应中,我正在捕获 HTML 代码的主页。
我能做什么?
您可以将validator()辅助函数与validate()方法一起使用,它将帮助您进行 AJAX 调用和普通调用
validator($request->all(), [
"name" => ["string", "nullable"],
"email" => ["email", "nullable"],
"currentPassword" => ["password:api"]
])->validate();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
206 次 |
| 最近记录: |