Javascript Ajax请求不是jQuery中的函数错误

Javascript Ajax请求不是jQuery中的函数错误,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图使用验证器返回的ajax请求来显示我的验证错误,但控制台一直在返回这个错误。是因为我的jQuery版本(3.4.1)吗 JS控制台输出 TypeError: $.ajax(...).done(...).error is not a function Ajax代码 $(document).ready(function() { // Validation for all field $(".guest-query-submit").click(function (e) {

我试图使用验证器返回的ajax请求来显示我的验证错误,但控制台一直在返回这个错误。是因为我的jQuery版本(3.4.1)吗

JS控制台输出

TypeError: $.ajax(...).done(...).error is not a function
Ajax代码

$(document).ready(function() {
    // Validation for all field
    $(".guest-query-submit").click(function (e) {
        e.preventDefault(); //Prevent default action

        //Define inputs
        let _token = $("input[name='_token']").val();
        let title = $("input[name='title']").val();
        let description = $("input[name='description']").val();
        let category = $("input[name='category']").val();
        let attachment = $("input[name='attachment']").val();
        let county = $("input[name='county']").val();
        let startDate = $("input[name='startDate']").val();
        let endDate = $("input[name='endDate']").val();
        let flexibility = $("input[name='flexibility']").val();
        let contactName = $("input[name='contactName']").val();
        let contactEmail = $("input[name='contactEmail']").val();
        let contactNumber = $("input[name='contactNumber']").val();

        //Starting ajax request
        $.ajax({
            url: "{{route('send-guest-query')}}",
            type: 'POST',
            data: {
                _token:_token,
                title:title,
                description:description,
                category:category,
                attachment:attachment,
                county:county,
                startDate:startDate,
                endDate:endDate,
                flexibility:flexibility,
                contactName:contactName,
                contactEmail:contactEmail,
                contactNumber:contactNumber },
            dataType: "json"
        }).done (function (data) {
            if(data.status === 200) {
                Swal.fire({ //SweetAlert
                    title: 'Success',
                    text: 'Your query was sent successfully!',
                    type: 'success',
                    confirmButtonText: 'Continue'
                })
            }}).error(function (data) {
            if (data.status === 422 && data.responseJSON) {
                console.log(data);
                if (Object.keys(data.responseJSON.errors).length) {
                    for (field in data.responseJSON.errors) {
                        let error = data.responseJSON.errors[field];
                        let input = '#Modal input[name=' + field + ']';
                        $(input).addClass('is-invalid');
                        $(input).next('span').find('strong').text(error[0]);
                    }
                }
            }
        })
     });

Laravel中的验证部分

$validator = Validator::make($request->all(),
        [
            'title' => 'required|string',
//            'description' => 'required|string',
//            'category' => 'required',
//            'county' => 'required',
            'startDate' => 'required',
            'endDate' => 'required',
//            'flexibility' => 'required',
            'contactName' => 'required',
            'contactEmail' => 'required',
            'contactNumber' => 'required|integer',
        ]);
        if ($validator->passes()) {
            return response()->json(['success'=>'Query successfully sent!'],200);
        }
        return response()->json(['error'=>$validator->errors()->all()],422);

也在这个话题上。今天的标准甚至建议这样做,以解决使用modal时的验证问题。我知道在这里使用Vue可能会使我的生活更轻松,但在我掌握JavaScript的基本知识之前,我不想接触Vue。

我不知道这是否会有帮助,但通常这是我使用ajax请求的方式,我发现这更容易,我希望这会有所帮助

$.ajax({
contentType:*发送的类型,例如:'application/json'*,
url:*您的url*,
类型:*发布或获取*,
数据:*您的数据ex:JSON.stringify(model),因为我正在发送JSON*,
成功:功能(数据){
},
错误:函数(err){
控制台错误(err);
}
});

},
这是
.fail()
而不是
.error()
。尝试使用
.fail()
相同的错误。在我发布我的帖子之前,我忘了把它改回去。错误将不一样。你能把你在尝试失败时得到的东西发出来吗?@RoryMcCrossan你是对的,错误不一样。现在我得到了
TypeError:无法将未定义转换为object
如果您在控制台中双击该错误,它将带您到导致该错误的行,您可以从该行确定未定义的确切值。将我的代码更改为:不幸的是,此后控制台将不会返回任何内容:/请在if语句之前输入console.error(err):类似地:
error:function(data){console.error(data);if(data.status==422&&data.responseJSON){..
您这样做只是为了检查它是否正在输入您的错误声明,所以当它打印在日志中时,它会显示错误,并读取问题下的注释。问题不在于$.ajax设置