首页 > 解决方案 > Ajax 请求在 Yii2 中不起作用

问题描述

我正在尝试执行 ajax 请求,但它返回错误函数。

JS:

cr_day_next.on('click',function(){
        $.ajax({
            url: 'planing/next-day',
            data: {data: 'works'},
            type: 'POST',
            success: function(res) {
                alert(res);
                cr_day.trigger('next.owl.carousel');
            },
            error: function() {
                alert('try again');
            }
        });
    });

控制器:

public function actionNextDay($data){
        if(Yii::$app->request->isAjax()){
            return $data;
        }
    }

我究竟做错了什么?

标签: javascriptphpjqueryyii2

解决方案


您的网址不正确。$data您行动中的论点必须来自$_GET,但您将其发送为POST. 您应该使用$_POST来获取数据:

public function actionNextDay() {
    if (Yii::$app->request->isAjax) {
        return Yii::$app->request->post('data');
    }
}

或发送请求为GET

cr_day_next.on('click',function(){
    $.ajax({
        url: '<?= Url::to(['planing/next-day']) ?>',
        data: {data: 'works'},
        type: 'GET',
        success: function(res) {
            alert(res);
            cr_day.trigger('next.owl.carousel');
        },
        error: function() {
            alert('try again');
        }
    });
});

推荐阅读