Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ajax调用后的Laravel验证重定向_Php_Laravel_Api_Laravel 5 - Fatal编程技术网

Php ajax调用后的Laravel验证重定向

Php ajax调用后的Laravel验证重定向,php,laravel,api,laravel-5,Php,Laravel,Api,Laravel 5,我有一个新的5.3安装,希望与邮递员进行api调用。我还尝试了angular2,以确保这不是邮递员的问题 在我的routes/api.php中,我得到了一条简单的路线: Route::post('test', function(\App\Http\Requests\LoginRequest $request) { return $request->all(); }); LoginRequest正在检查电子邮件和密码字段是否存在。如果是,则输出为例外。但是当它丢失时,它会重定向到/

我有一个新的5.3安装,希望与邮递员进行api调用。我还尝试了angular2,以确保这不是邮递员的问题

在我的
routes/api.php
中,我得到了一条简单的路线:

Route::post('test', function(\App\Http\Requests\LoginRequest $request) {
    return $request->all();
});
LoginRequest正在检查电子邮件和密码字段是否存在。如果是,则输出为例外。但是当它丢失时,它会重定向到
/

我是否必须为ajax调用的表单验证添加一些信息?我认为当有ajax调用时,laravel会返回一个json错误对象

更新:


我发现我错过了Postman中的
Accept application/json
标题。有了它,它就工作了。但是有没有一种方法可以说所有的
api/*
调用都应该被视为一个json调用呢?

您可以像这样响应ajax调用

 return response()->json(array('error' => $validator->getMessageBag()->toArray()), 400);
响应状态400指示错误,您将进入错误部分

error: function(jqXHR, textStatus, errorThrown){       
  var errResponse = JSON.parse(jqXHR.responseText);
  if (errResponse.error) {
    $.each(errResponse.error, function(index, value)
    {   
       console.log(value);
    });
  }
}

我为我的请求创建了一个新的父类。它检查路由是否属于
api
组。我试图向组中添加一个中间件来添加头,但是这个技巧失败了

class JsonRequest extends FormRequest
{
    public function expectsJson()
    {
        return ($this->route()->getAction()['middleware'] == 'api');
    }
}

在发出AJAX请求时,如何获得重定向?您是否从
/
获取内容作为响应?更新了我的回答相关:我想使用
FormRequest
类,以便控制器内的代码尽可能小。