如果传入的请求是AJAX请求,则不会生成重定向。相反,带有422状态码的HTTP响应将返回到浏览器,其中包含验证错误的JSON表示。
这不管用!我试图通过ajax请求访问路由,它会重定向回来。
如果验证通过,代码将继续正常执行。但是,如果验证失败,将抛出一个Illumate\合同\验证\验证异常。自动捕获此异常,并生成重定向到用户先前的位置。验证错误甚至会自动Flink到会话!
现在我想知道laravel在哪里捕捉到这个异常,以便我可以修改它?
经过一段时间的研究后,我会发布我的结果,这样任何有这个问题的人都可以节省很多时间。
@Faiz,从技术上讲,如果你想坚持laravel的行为,你就不应该改变任何事情(我会一直遵循taylor的建议)。因此,要接收422响应代码状态,您需要告诉phpunit您将发送一个XMLHttpRequest。也就是说,这对拉威尔5号有效
$response = $this->call('POST', $url, [], [], [],
['HTTP_X_Requested-With' => 'XMLHttpRequest']);
更多信息在Github问题。此外,如果你看Symfony\Component\HttpFoundation\Request@isXmlHttpRequest
,你会发现这个头被“普通JavaScript框架”使用,并引用这个链接
还没有在浏览器上测试,但我认为这应该也可以。
这是在FormRequest类中处理的:
protected function failedValidation(Validator $validator)
{
throw new HttpResponseException($this->response(
$this->formatErrors($validator)
));
}
您可以在自己的请求对象中重写此函数,并以任何方式处理失败的验证。
我正试图决定如何处理猫鼬中的验证错误。 我使用节点验证器定义了自己的验证规则,例如: 这将产生如下错误: 然而,节点验证器提供了自己的错误消息。如果我使用mongoose validator节点模块将节点验证器直接插入到我的模式中,那么我可以直接使用这些错误消息: 这将生成一条错误消息,如下所示: 我也可以在此处提供自定义错误消息: Mongoose允许您根据需要定义字段: 这将生成一条错误消息,
问题内容: 我在桌面应用程序中使用spring + hibernate。 我正在尝试使用分层实现来构建它,所以我有: GUI层–call- >服务层–call-> DAO层 一个更好地说明我的情况的小例子: 问题是:谁抛出异常并由谁处理? 我认为DAO必须抛出第一个异常,然后服务层将其抛出,最后GUI层处理该异常,这样我才能向用户显示消息,这很好吗?有没有一种方法可以使用spring构建一些Exc
1.换任意空闲端口都会出现此问题 2.将SSL配置注释后,运行正常 错误原因: 在Spring 2.1.9.RELEASE中,Tomcat 9.0.26似乎是一个问题 。 降低Tomcat版本 Springboot修改内置Tomcat版本 此问题真的是让我几乎崩溃啊,疯掉的感觉。
问题内容: 我有一个正在构建的自滚动MVC框架,到目前为止,已经设法避免了任何AJAX调用的需要。但是,现在,我想创建一个实时更新提要。 我的问题是,通常将Ajax调用的处理程序存储在MVC中的什么位置?我应该将它们存储在进行呼叫的同一控制器中吗? 例如,如果我的域名www.example.com/browse/blogs(浏览器是控制器,博客是方法)正在对更新后的博客列表进行AJAX调用,则该调
我搜索了很多,几乎所有我发现的例子都使用了控制器中的异常处理和自己的异常处理程序。我一直认为这应该在程序的服务层上完成。如果不是,我真的不明白为什么要创建单独的服务层。 另外,如果我在Controller中实现异常处理,是否意味着我必须在前面的所有层中抛出异常?
问题内容: 我正在使用Spring MVC 并处理REST Api的所有异常。对于Web MVC控制器抛出的异常,它工作正常,但对于Spring Security自定义过滤器抛出的异常,它不工作,因为它们在调用控制器方法之前运行。 我有一个自定义的spring安全过滤器,它执行基于令牌的身份验证: 使用此自定义入口点: 并使用此类来全局处理异常: 我需要做的是返回一个详细的JSON主体,即使对于s