javascript - AJAX POST 请求未在 post 路由中调用 Controller 方法

标签 javascript php ajax laravel

当尝试发出 AJAX POST 请求时,我的代码给出了 500 内部服务器错误。我已经完成了 CSRF token 部分。

这是我的 JS 代码

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

$('#likeBtn').on('click', function(e){

    e.preventDefault();

    //Getting urlLink and activityId - works

    $.ajax({
        type: 'POST',
        url: './mainView/postlike',
        data: {activityId : activityId},
        success: function(data){
            console.log(JSON.stringify(data));
        },
        error: function(e){
            console.log(JSON.stringify("Exception: " + e));
        }
    });
});

这是我的帖子路线:

Route::post('/mainView/postlike', 'ActivityController@postLike')->name('postLike')->middleware('auth');

这是我的 Controller 方法:

public function postLike(){
    if(Request::ajax()){
        return Response::json(Request::all());
    }
}

这是我的 mainView.blade.php。我并不是真的想使用表单,但我还是尝试了。

<form id="likeForm" method="POST" action="#">
    <input class="likeToken" type="hidden" name="_token" value="{{ csrf_token() }}">
    <a id="likeBtn" data="{{ route('activity.like', ['activityId' => $activity->activity_id]) }}">
    <img src="IMG/icons/like.png" alt="likes">
    </a>{{ $activity->likes->count() }}
</form>

话虽这么说,如果我在 route 执行此操作,它会输出提供的消息。

Route::post('/mainView/postlike', function(){
    if(Request::ajax()){
        echo "Hi";
    }
})->name('postLike')->middleware('auth');

按下点赞按钮时会显示“Hi”

最佳答案

您在评论中发布了错误消息。要修复它,请更改此:

if(Request::ajax()){

对此:

if (request()->ajax()) {

对于第二个错误:

response()->json(request()->all());

此外,您还可以注入(inject) Request 类:

public function postLike(Request $request)

并使用$request代替request()

关于javascript - AJAX POST 请求未在 post 路由中调用 Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46857839/

相关文章:

javascript - 使用 Google Apps 脚本在 Google 表格中附加带有日期的行并保留表格中指定的日期格式

javascript - 使用CSS3从最后一个位置随机旋转图像

javascript - 奇怪的 JavaScript 类型转换

php - 在 php 命名空间中,我是否需要要求每个文件

如果使用 ajax 加载页面,则 Javascript 函数未定义错误

javascript - 在向前看之前只捕获最接近的匹配项

php - 重置 ID 自动增量 ? phpmyadmin

php - 更正 MySQL 中的日期和时间列

javascript - 工作 JQuery 脚本在 ajax post 响应后不起作用

Javascript 全局变量只能在应用程序运行后访问