通过 Chrome Postman 扩展测试请求类验证时出现 404 错误

Pan*_*kaj 1 laravel laravel-5 laravel-5.1 laravel-5.2 laravel-5.3

下面是我的控制器操作方法。你可以看到我在将数据保存到数据库之前传递了一个请求类的参数来验证

public function store(RoleRequest $request)
{
}
Run Code Online (Sandbox Code Playgroud)

我的请求类如下。

class RoleRequest extends Request
{
    private $Role;

    public function __construct(IRole $_role) {
        $this->Role = $_role;
    }        
    public function authorize()
    {
        return true;
    }    
    public function rules()
    {
        return [
            'Role' => 'required|max:20|min:4,
        ];
    }    
}
Run Code Online (Sandbox Code Playgroud)

当我通过网页(刀片)运行它时,上面的代码工作得很好。

我为 API 创建了另一个控制器以发送保存请求。下面是代码

class RoleApiController extends Controller
{
    public function store(RoleRequest $request)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

问题来了,当我只输入 1 个字符作为角色名称并且请求类强加验证时,我收到 404 错误这次我从 Chrome 中的 Postman 扩展程序发送请求。

错误详情

在此处输入图片说明

Bjö*_*örn 5

ValidationRequest类检查您的请求是ajax 请求还是普通请求。

如果这是一个正常的请求,它会:redirect()->back()使用会话中的验证消息。

如果它是一个 ajax 请求,它会显示一个带有验证消息的 json 对象。

前端框架/库(例如 jQuery)向 ajax 请求添加标头,让后端知道这是一个 ajax 请求。Laravel 检查这个头文件来决定做什么(使用isAjaxorwantsJson方法)。

邮递员不会自动发送此标头。因此,您应该手动添加以下标题之一:

Accept: application/json

X-Requested-With: XMLHttpRequest
Run Code Online (Sandbox Code Playgroud)

下面以邮递员截图为例:

在此处输入图片说明