我正在 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 代码主页的。我能做些什么?
1 回答
素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
您可以将validator()辅助函数与validate()方法一起使用,它将帮助您进行 AJAX 调用和普通调用
validator($request->all(), [
"name" => ["string", "nullable"],
"email" => ["email", "nullable"],
"currentPassword" => ["password:api"]
])->validate();
- 1 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消