我正在 Laravel 控制器上进行简单的验证:
public function updateInfo(Request $request) {
$validator = $request->validate([
"name" => ["string", "nullable"],
"email" => ["email", "nullable"],
"currentPassword" => ["password:api"]
]);
return json_encode($validator);
}
我的问题是,如果失败,此验证会将我重定向到主页,并且我正在通过 AJAX 发出请求,我知道 Laravel 会检测到何时通过 Ajax 发出请求,但它仅在正常请求时才有效(典型请求在我发送了标头,Content Type application/json并在正文中发送了一个普通的 JSON
但是 Laravel 无法检测 Ajax 请求何时不是Content Type application/json,我使用的FormData()是 JavaScript 对象,所以,我不发送 header Content Type application/json,并在正文中发送 FormData 对象。
我认为它模拟了重新加载页面的典型 HTTP 请求,因此 Laravel 无法检测到它,但它给我的 ajax 响应带来了麻烦,因为 Laravel 响应了重定向,并且在我的 Ajax 响应中我捕获了 HTML 代码主页的。
我能做些什么?
素胚勾勒不出你