Formvalidation ajax 无法读取未定义的 属性 'message'

Formvalidation ajax cannot read property 'message' of undefined

我正在使用 formvalidation.io 插件,我正在尝试验证一个字段在数据库 table 中是否唯一。我已经完成了比较,并且我正在使用 ajax 返回结果(唯一与否)。 我使用 formvalidation 插件 (http://formvalidation.io/validators/callback) 中的 'callback validator'。 这是我的代码:

callback: { //check documento no repetido
    message: 'Ya existe un estudiante con el mismo número de documento',
    callback: function (value, validator, $field) {
        var url = "documento-existe";
        $.ajax({
            type: "POST",
            url: url,
            data: $("#numero_documento").serialize(),
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            success: function(data)
            {
                console.log(data);
                return data;
            }
        });
    }
}

此代码在 javascript 控制台中给我一个错误 ncaught TypeError: Cannot read property 'message' of undefined。 为什么会出现这个错误?

我知道有一个来自 formvalidation 插件的 'remote validator' 来做 ajax-through 验证(http://formvalidation.io/validators/remote/),但我正在使用 Laravel,我必须发送ajax headers (X-CSRF-TOKEN),并且 'remote validator' 没有发送 ajax headers.

的能力

最后 'remote' 方法接受 header。它没有在文档中指定。 我的解决方案是:

remote: {
    message: 'Ya existe un estudiante con el mismo número de documento',
    url: 'documento-existe',
    type: 'POST',
    data: function() {
        return {
            numero_documento: $("#numero_documento").val()
        };
    },
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
}

无论如何,我不喜欢控制台中的这个警告:

Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.