404通过Chrome Postman Extension测试请求类验证时出错

时间:2016-08-30 22:01:40

标签: laravel laravel-5 laravel-5.2 laravel-5.1 laravel-5.3

以下是我的Controller Action方法。您可以看到我在将数据保存到数据库

之前通过了一个请求类的参数进行验证
public function store(RoleRequest $request)
{
}

我的请求课程如下。

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,
        ];
    }    
}

当我通过网页(刀片)运行时,上面的代码非常有效。

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

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

    }
}

问题来了,当我只输入1个字符作为角色名称而Request类强制验证时我收到404错误这次我发送了Chrome中Postman Extension的请求。

错误详情

enter image description here

1 个答案:

答案 0 :(得分:2)

验证var $messages = $('.messages-content'), d, h, m, i = 0; $(window).load(function() { $messages.mCustomScrollbar(); setTimeout(function() { fakeMessage(); }, 100); }); function updateScrollbar() { $messages.mCustomScrollbar("update").mCustomScrollbar('scrollTo', 'bottom', { scrollInertia: 10, timeout: 0 }); } function setDate(){ d = new Date() if (m != d.getMinutes()) { m = d.getMinutes(); $('<div class="timestamp">' + d.getHours() + ':' + m + '</div>').appendTo($('.message:last')); } } function insertMessage() { msg = $('.message-input').val(); if ($.trim(msg) == '') { return false; } $('<div class="message message-personal">' + msg + '</div>').appendTo($('.mCSB_container')).addClass('new'); setDate(); $('.message-input').val(null); updateScrollbar(); setTimeout(function() { fakeMessage(); }, 1000 + (Math.random() * 20) * 100); } $('.message-submit').click(function() { insertMessage(); }); $(window).on('keydown', function(e) { if (e.which == 13) { insertMessage(); return false; } }) var Fake = [ 'Hi there, I\'m Fabio and you?', 'Nice to meet you', 'How are you?', 'Not too bad, thanks', 'What do you do?', 'That\'s awesome', 'Codepen is a nice place to stay', 'I think you\'re a nice person', 'Why do you think that?', 'Can you explain?', 'Anyway I\'ve gotta go now', 'It was a pleasure chat with you', 'Time to make a new codepen', 'Bye', ':)' ] function fakeMessage() { if ($('.message-input').val() != '') { return false; } 类检查您的请求是ajax请求还是正常请求。

如果这是正常请求,它会:Request在会话中显示验证消息。

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

前端框架/库(例如jQuery)为ajax请求添加一个标头,让后端知道它是一个ajax请求。 Laravel会检查此标头以决定要执行的操作(使用redirect()->back()isAjax方法)。

Postman不会自动发送此标题。因此,您应手动添加以下标题之一:

wantsJson

以下是邮递员的截图:

enter image description here