首页 > 解决方案 > Ajax:未调用路由中指定的函数

问题描述

我有一个按钮,当您单击它时,它将显示一个确认框。如果用户单击“确定”,则“到达”一词将显示在名为“EventData”的 div 内。

到目前为止,当我单击按钮时会显示确认框,但当我确认时,“EventData”不会显示“到达”一词。

*'event_id' 有一个值

我认为问题在于它不会进入函数的 url 部分

路线:

Route::post('/ArchiveEventPosts','AdminController@ArchiveEventposts')->name('ArchiveEventposts');

脚本:

$(document).on('click', '.archive', function() {

    var event_id = $(this).attr('event_id');

    var x = confirm("Are you sure you want to archive this record?");

    if (x) {

        $.ajax({
            method: "POST",
            url: '{{ route("ArchiveEventposts") }}',
            data: {
                event_id: event_id
            },
            success: function(data) {
                $('#EventData').html(data);
                alert('Record Archived');
            }
        });
    }
});

控制器中的功能:

public function ArchiveEventposts(Request $request)
{
   echo 'Reached';
}

标签: javascriptphpajaxlaravel

解决方案


您的控制器方法没有返回任何数据;它只是打印“到达”这个词。

您需要将函数更改为以下内容:

public function ArchiveEventposts(Request $request)
{
    return response()->json(["message" => "Reached"]);
}

推荐阅读