正如文档中所述,如果AJAX验证失败,您将获得json响应:
如果验证失败,将生成重定向响应以将用户发送回其先前的位置。错误也将闪现到会话中,以便可以显示。如果请求是AJAX请求,则将向用户返回具有422状态代码的HTTP响应,包括验证错误的JSON表示。
但我更喜欢局部视图闪烁错误,这是非AJAX的默认设置。 那么是否可以模拟非AJAX或关闭AJAX 而无需重建源代码或其他一些尴尬?
BTW,罪魁祸首函数是buildFailedValidationResponse。
答案 0 :(得分:2)
这些天我遇到了类似的问题,并最终覆盖了一个方法。
在Laravel 5.1.20下,我不得不将类Illuminate \ Foundation \ Http \ FormRequest中的方法响应复制到类App \ Http \ Requests \ Request中,就像你的答案一样,改变了
if ($this->ajax() || $this->wantsJson()) {
与
if ($this->wantsJson())) {
这是App \ Http \ Requests \ Request类
中的完整方法public function response(array $errors)
{
if (!$this->pjax() && ($this->ajax() || $this->wantsJson())) {
return new JsonResponse($errors, 422);
}
return $this->redirector->to($this->getRedirectUrl())
->withInput($this->except($this->dontFlash))
->withErrors($errors, $this->errorBag);
}
答案 1 :(得分:0)
管理用蛮力解决问题。刚刚覆盖了AuthController中的trait方法。感觉不好。
if (strp.matches(strp) && stru.matches(stru)) {
register rg=new register();
rg.setVisible(true);
this.setVisible(false);
}
else {
JOptionPane.showMessageDialog(null,"User name or password are not correct.");
return;
}