首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Laravel中执行AJAX时获得错误422 (不可处理实体)

在Laravel中执行AJAX时获得错误422 (不可处理实体)
EN

Stack Overflow用户
提问于 2021-02-24 14:23:50
回答 1查看 812关注 0票数 0

我试图使用ajax在数据库中插入用户的数据。没有它我就做了,而且效果很好。现在它给了我422号错误。守则如下:

UserController.php

代码语言:javascript
运行
复制
public function store(Request $request)
    {
        $request->validate([
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => ['required', 'string', 'min:8', 'confirmed'],
        ]);
        $inputArray = array(
            'name' => $request['name'],
            'email' => $request['email'],
            'password' => Hash::make($request['password']),
        );
        $value = User::create($inputArray);
        !is_null($value) ? $message = "User Added Successfully" : $message = "User not Added";
        return json_encode(array($message));
    }

Index.blade.php

代码语言:javascript
运行
复制
<form method="post" {{-- action="{{ route('users.store') }}" --}} id="createform">
                        <input type="hidden" name="_token" id="csrf" value="{{Session::token()}}">
                        <div class="input-group mb-3">
                            <input type="text"
                                    name="name"
                                    class="form-control @error('name') is-invalid @enderror"
                                    value="{{ old('name') }}"
                                    placeholder="Full name"
                                    id="name">
                            <div class="input-group-append">
                                <div class="input-group-text">@icon('user')</div>
                            </div>
                            @error('name')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                            @enderror
                        </div>

                        <div class="input-group mb-3">
                            <input type="email"
                                    name="email"
                                    value="{{ old('email') }}"
                                    class="form-control @error('email') is-invalid @enderror"
                                    placeholder="Email"
                                    id="email">
                            <div class="input-group-append">
                                <div class="input-group-text">@icon('envelope')</div>
                            </div>
                            @error('email')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                            @enderror
                        </div>

                        <div class="input-group mb-3">
                            <input type="password"
                                    name="password"
                                    class="form-control @error('password') is-invalid @enderror"
                                    placeholder="Password"
                                    id="password">
                            <div class="input-group-append">
                                <div class="input-group-text">@icon('lock')</div>
                            </div>
                            @error('password')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                            @enderror
                        </div>

                        <div class="input-group mb-3">
                            <input type="password"
                                    name="password_confirmation"
                                    class="form-control"
                                    placeholder="Retype password"
                                    id="password_confirmation">
                            <div class="input-group-append">
                                <div class="input-group-text">@icon('lock')</div>
                            </div>
                        </div>

                        <div id="msg"></div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
                            <button type="submit" class="btn btn-primary" id="btnadd">Add User</button>
                        </div>
                    </form>

jqajax.js

代码语言:javascript
运行
复制
jQuery(function ($) {

    jQuery("#btnadd").on('click', addInfo);
    function addInfo(e) {
        e.preventDefault();
        var name = jQuery('#name').val();
        var email = $("#email").val();
        var password = $("#password").val();
        var password_confirmation = $("#password_confirmation").val();

        $.ajax({
            url: "/users",
            method: "POST",
            data: {
                _token: $("#csrf").val(),
                name: name,
                email: email,
                password: password,
                password_confirmation: password_confirmation
            },
            success: function (dataResult) {
                var dataResult = JSON.parse(dataResult);
                msg = "<div class='alert alert-dark mt-3'>dataResult.message</div>";
                $("#msg").html(msg);
                $("#createform")[0].reset();
                showdata();
            },
        });

    }
});

我得到的错误是app.js:14653 POST 422 (非可处理实体)

EN

回答 1

Stack Overflow用户

发布于 2021-02-28 04:27:08

代码语言:javascript
运行
复制
function store(Request $request)
{
    $validator = Validator::make($request->all(), [
        'name' => ['required', 'string', 'max:255']
    ]);
    if ($validator->fails()) {
        $errors = $validator->errors();
        $returnError['name'] = $errors->first('name');
        return json_encode($returnError);
    } else {
        $inputArray = array(
            'name' => $request['name']
        );
        $value = User::create($inputArray);
        !is_null($value) ? $message = "User Added Successfully" : $message = "User not Added";
        return json_encode(array($message));
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66352798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档