2016-05-23 153 views
0

Laravel 5.2文檔狀態:Laravel 5:AJAX請求和驗證

AJAX請求&驗證

在這個例子中,我們使用了一個傳統的形式將數據發送到所述應用 。但是,許多應用程序使用AJAX請求。在AJAX請求期間使用 驗證方法時,Laravel不會生成 重定向響應。相反,Laravel生成一個包含所有驗證錯誤的JSON響應 。這個JSON響應將是 與422 HTTP狀態代碼一起發送。

源: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數據作爲內容 - 輸入 的標題請求已正確設置爲application/json。

那麼我們錯過了什麼?解決辦法是什麼?

回答

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響應。