Laravel 5:AJAX请求&验证

时间:2016-05-23 21:06:20

标签: laravel laravel-5

Laravel 5.2文档声明:

  

AJAX请求&验证

     

在此示例中,我们使用传统表单将数据发送到   应用。但是,许多应用程序使用AJAX请求。使用时   在AJAX请求期间的验证方法,Laravel不会生成   重定向响应。相反,Laravel会生成JSON响应   包含所有验证错误。这个JSON响应将是   使用422 HTTP状态代码发送。

Src:https://laravel.com/docs/5.2/validation#quick-ajax-requests-and-validation

然而,这看起来并不正确。使用验证对路径进行简单的CURL调用仍会返回HTML /重定向:

curl -X POST -H "Content-Type: application/json" 
-H "Cache-Control: no-cache" 
-d '{}' "http://yours.com/user/register"

以上的回应是HTML和重定向。它不是JSON。

即使是这个页面:https://laravel.com/docs/5.2/requests#retrieving-input州:

  

检索JSON输入值

     

向您的应用程序发送JSON请求时,您可以访问   JSON数据通过输入法只要Content-Type头   请求已正确设置为application / json。

那么我们错过了什么?解决方案是什么?

1 个答案:

答案 0 :(得分:1)

您似乎还需要以下标题:

"X-Requested-With: XMLHttpRequest"

因此:

curl -X POST -H "Content-Type: application/json" 
-H "X-Requested-With: XMLHttpRequest" 
-H "Cache-Control: no-cache"
-d '{}' "http://yours.com/user/register"

现在$this->validate(...)正在返回JSON响应。