【问题标题】:Ajax and Laravel 500 (Internal server error)Ajax 和 Laravel 500(内部服务器错误)
【发布时间】:2019-05-29 14:15:01
【问题描述】:

我正在尝试制作一个简单的小型应用程序来学习 ajax,但我在这里遇到了严重的问题。 这里有一些sn-ps,当我点击提交时,表单没有做任何事情,只是在chrome的控制台中显示错误500。如果我尝试在成功的ajax函数中显示某些内容,则显示“未定义”的请求。 非常感谢!

这是我的控制器

public function store(Request $request)
{
    $response = array(
        'msg' => 'Thank you nephew'
    );

    $request->validate([
        'name' => 'required|min:3',
        'mobile' => 'required',
        'address' => 'nullable',
        'email' => 'nullable'
    ]);

    $values = $request->all();

    echo $values;

    return Response::json($response);
}

这是我的 Ajax 脚本

<script>
    $('#create-form').on('submit', function (event) {
        event.preventDefault();

        let name = $("input[name=name]").val();
        let mobile = $("input[name=mobile]").val();
        let email = $("input[name=email]").val();
        let address = $("input[name=address]").val();

        console.log(name);

        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('input[name="_token"]').val()
            }
        });

        $.ajax({
            type: 'POST',
            url: '{{ route('addresses.store') }}',
            data: {name: name, mobile: mobile, email: email, address: address, token: $('input[name="_token"]').val()},
            success: function (data) {
                console.log(data);
            }
        });
    });
</script>

这是刀片模态

<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
     aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLabel">Create address</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <div class="result"></div>
                <form action="{{ route('addresses.store') }}" method="post" id="create-form">
                    @csrf

                    <div class="form-group">
                        <label for="">Name</label>
                        <input type="text" class="sequence-input" name="name"/>
                    </div>
                    <div class="form-group">
                        <label for="#">Mobile</label>
                        <input type="text" class="sequence-input" name="mobile"/>
                    </div>
                    <div class="form-group">
                        <label for="#">Address</label>
                        <textarea name="address" class="sequence-input" cols="30" rows="6"></textarea>
                    </div>
                    <div class="form-group">
                        <label for="#">Email Address</label>
                        <input type="text" class="sequence-input" name="email"/>
                    </div>
                    <div class="form-group">
                        <button type="submit" id="create" class="sequence-btn sequence-btn--primary">Create</button>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="sequence-btn sequence-btn--danger" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    尝试在名称的值let mobile = $("input[name='mobile']").val(); 上使用单引号等

    或者

    $.ajax({
                type: 'POST',
                url: '{{ route('addresses.store') }}',
                data: $(this).serialize(),
                success: function (data) {
                    console.log(data);
                }
            });
    

    【讨论】:

    • 仍然收到相同的错误 POST 'url' 500 (Internal Server Error)
    【解决方案2】:

    您的 500 错误是由尝试回显数组 $values 引起的:

    $values = $request->all();
    
    echo $values; // <-- Your error is here.
    

    尝试改用 dd 辅助方法:dd($values)

    【讨论】:

      猜你喜欢
      • 2017-11-05
      • 2021-08-25
      • 2017-04-12
      • 2020-02-12
      • 2018-04-16
      • 2016-03-24
      • 1970-01-01
      • 2017-03-07
      • 2019-05-12
      相关资源
      最近更新 更多