$ this-> validate导致“无法加载响应数据”

时间:2018-06-08 03:55:24

标签: php laravel validation

我有以下外部形式:

  <form method="POST" action="http://infused.local/leads/post">
    <div class="form-group">
      <label>first_name</label>
      <input type="text" name="first_name" class="form-control">
    </div>

    <div class="form-group">
      <label>last_name</label>
      <input type="text" name="last_name" class="form-control">
    </div>

    <div class="form-group">
      <label>email</label>
      <input type="text" name="email" class="form-control">
    </div>

    <div class="form-group">
      <label>postal_code</label>
      <input type="text" name="postal_code" class="form-control">
    </div>

    <button type="submit" class="btn btn-primary">Submit</button>
  </form>
</div>

指向以下控制器方法:

public function post()
{
    $this->validate(request(), [
        'email' => 'required|email',
    ]);

    echo 'hello';
}

通过这条路线:

Route::post('leads/post', 'LeadController@post');

我已禁用表单路由的CSRF保护。

  • 当我提交表单时,我从“无法加载响应数据” 铬。
  • 当我删除$this->validate来电时,我会“你好”

为什么这不起作用?

2 个答案:

答案 0 :(得分:0)

显然,如果有错误,validate方法只会将您重定向回上一页,除非响应预期为JSON。改为使用Validator外观结束。

编辑:感谢您的downvotes。这个网站是癌症。

答案 1 :(得分:0)

您需要返回JSON,并且可以使用helper function

response()->json([
    'message' => 'hello'
]);

然后在你的JS中:

console.log(response.message);