Ajax:路由中指定的函数未调用

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

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

*“ 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';
}
a55713766 回答:Ajax:路由中指定的函数未调用

您的控制器方法不返回任何数据;它只是打印“已达到”一词。

您需要将功能更改为以下内容:

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

您可能需要更改路由分配方式。您正在执行的操作是使用单引号将纯字符串分配给URL。尝试这样:

var archiveEventpostsRoute = "{{ route('ArchiveEventposts') }}";

及以下

url: archiveEventpostsRoute,

另外,请确保您的控制器正在返回正确的数据,如其他答案所述:

public function ArchiveEventposts(Request $request)
{
    return response()->json(["message" => "Reached"]);
}
本文链接:https://www.f2er.com/3129262.html

大家都在问