2015-04-21 55 views
1

我使用laravel的讽刺认证系统,但我发送请求扔ajax。如果我是例如登录页面上,我送了一些错误的数据,它将引发我一个错误到控制台:laravel认证使用ajax,验证

POST http://some.app/auth/login/ 422 (Unprocessable Entity) 

,但实际上它返回一些数据:注册

email: ["The email must be a valid email address."] 

同样怪异的表演。

1.如何解决这些状态码?

2.如何处理这些错误?只需将data.email和data.password写入用户?没有更好的解决方案吗?

3.什么是csrf令牌?我与数据发送,但它似乎并不需要

感谢

+0

Laravel返回422似乎是故意的。看到这里:http://laravel.com/docs/master/validation#controller-validation它说:“如果传入的请求是一个AJAX请求,将不会生成重定向,而是一个具有422状态码的HTTP响应将是返回到包含验证错误的JSON表示的浏览器。“因此,在您的ajax调用中,您可以定义错误回调函数来处理错误,以及验证成功时的成功回调函数。 – Rickkwa

+0

哦谢谢,但是状态码在控制台中发生错误 – dontHaveName

回答

0

这是一个验证错误。

该信息返回到$errors变量。你可以以任何你想要的方式处理,但我想最明显的动作是向用户显示错误。

其实最好有422比200(一切OK,因为它不是)。由于验证系统依赖于验证请求,因此您不希望控制器继续进行(例如,通过保存未通过验证的数据)。