laravel,ajax无法在生产模式下运行在此服务器上找不到请求的URL / appointment / 45 / edit

时间:2019-06-02 17:52:50

标签: php ajax laravel

我尝试使用ajax更新数据,并在本地运行laravel,但在生产环境中,这给了我一个错误(在此服务器上找不到请求的URL / appointment / 45 / edit)

我正在使用Ajax,laravel 5.7

    $(document).on('click', '.edit', function() {
        id = $(this).attr('id');
        $.ajax({
             url: "/appointment/" + id + "/edit",
            dataType: "json",
            success: function(html) {
                $('#name').val(html.data.name);
                $('#appdate').val(html.data.appdate);
                $('.modal-title').text("Edit Appointment");
                $('#action_button').val("Edit");
                $('#action').val("Edit");
                $('#modal-default').modal('show');
            }
        })
    });



route
Route::resource('appointment','AppointmentController');



controller
    public function edit($id)
    {
        if(request()->ajax())
        {
            $data = Appointment::findOrFail($id);
            return response()->json(['data' => $data]);
        }
    }

在此服务器上找不到请求的URL / appointment / 45 / edit

我尝试使用ajax更新数据,并在本地生产中使用laravel进行更新,但在生产环境中,这给了我一个错误(在此服务器上找不到请求的URL / appointment / 45 / edit)

2 个答案:

答案 0 :(得分:0)

在ajax调用中,使用命名路由,例如

  

url:'{{route('route.name')}}'

并添加ajax调用类型

  

类型:“发布”或类型:“获取”

答案 1 :(得分:0)

在js中:

$(document).on('click', '.edit', function() {
    var baseurl = window.location.protocol + "//" + window.location.host;

    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });

    id = $(this).attr('id');

    $.ajax({
        url: baseurl + "/appointment/" + id + "/edit",
        type: 'get',
        dataType: "json",
        cache: false,
        success: function(response) {
            $('#name').val(response.data.name);
            $('#appdate').val(response.data.appdate);
            $('.modal-title').text("Edit Appointment");
            $('#action_button').val("Edit");
            $('#action').val("Edit");
            $('#modal-default').modal('show');
        }
    })
});

在路由文件(web.php)

Route::resource('appointment','AppointmentController');

在控制器中:

    public function edit($id)
    {     
         $data = Appointment::findOrFail($id);
         return response()->json(['data' => $data]);
    }