laravel-使用ajax在控制器中请求为空

时间:2019-12-08 12:20:11

标签: ajax laravel

我正在使用laravel 6.0,正在构建Crud应用程序。我在查看文件中有以下jquery代码

function updaterecord(id) {
        $('#modalupdate').on('submit', function (e) {
            e.preventDefault();
            $.ajax({
                url: 'update/'+id,
                method: 'post',
                success: function (res) {
                    console.log(res);
                }
            })
        });
    }

这是控制器中的代码

public function update(Request $request, $id='') {
            $country = $request->input('countryname');
            $sortname = $request->input('sortname');
            $phonecode = $request->input('phonecode');
            //return $country.$sortname.$phonecode;
        return $request;
//            DB::table('countries')->where('id',$id)->update(
//                [
//                    'name' => $country,
//                    'sortname' => $sortname,
//                    'phonecode' => $phonecode,
//                ]);
    }

问题是$ request返回空。 如果我不使用ajax,那么我将获取所有输入值。但是我不知道为什么它不适用于ajax请求。另外我已经在视图文件中添加了这一行

        headers: {
            'X-CSRF-TOKEN': '{!! csrf_token() !!}'
        }
    });

请帮助我解决这个问题

4 个答案:

答案 0 :(得分:0)

您没有传递表单数据。试试这个:

function updaterecord(id) {
    $('#modalupdate').on('submit', function (e) {
        e.preventDefault();
        $.ajax({
            url: 'update/' + id,
            method: 'post',
            data: $(this).serialize();
            success: function (res) {
                console.log(res);
            }
        })
    });
}

答案 1 :(得分:0)

laravel默认不发送原始数据,您必须将数据转换为json,最佳做法是:

return response()->json([
   'data' => $request  
]);

答案 2 :(得分:0)

仅以示例代码为例,看看是否有任何提示。

ExchangeService service = new ExchangeService();
service.TraceEnabled = true;

service.Credentials = new WebCredentials(
   "user",
   "password",
   "domain.com");

service.AutodiscoverUrl("user@domain.com", RedirectionUrlValidationCallback);

var appointmentsList = service.FindAppointments(WellKnownFolderName.Calendar, calendarView);

查看是否收到任何回复。

答案 3 :(得分:0)

尝试这个data: new FormData(this),

function updaterecord(id) {
    $('#modalupdate').on('submit', function (e) {
        e.preventDefault();
        $.ajax({
            url: 'update/' + id,
            method: 'post',
            data: new FormData(this),
            success: function (res) {
                console.log(res);
            }
        })
    });
}