【问题标题】:Laravel 5: AJAX Requests & ValidationLaravel 5:AJAX 请求和验证
【发布时间】:2016-09-20 21:34:19
【问题描述】:

Laravel 5.2 文档状态:

AJAX 请求和验证

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

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

但是,这似乎不正确。使用验证对路由进行简单的 CURL 调用,仍然返回 HTML/a 重定向:

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 header 请求已正确设置为 application/json。

那么我们错过了什么?解决办法是什么?

【问题讨论】:

    标签: laravel laravel-5


    【解决方案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 响应。

    【讨论】:

      猜你喜欢
      • 2020-08-20
      • 2015-12-24
      • 2023-03-14
      • 2015-08-07
      • 2018-01-24
      • 2020-11-06
      • 2016-09-20
      • 2016-05-20
      • 2015-09-08
      相关资源
      最近更新 更多