不能通过xhr请求

时间:2017-05-11 10:49:33

标签: javascript yii2

在我的项目中,我正在向yii2控制器做xhr请求

请求的结构如下所示

var xhr = new XMLHttpRequest();

xhr.open('POST', '$urlToController', true);
xhr.setRequestHeader("Content-type","application/json");                
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");

xhr.onreadystatechange = function () {
     if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
           console.log(xhr.responseText);
     }
};

// Print on console first
console.log({ id: JSON.stringify($('#grid').yiiGridView('getSelectedRows')), _csrf : csrfToken}); 


xhr.send({ id: JSON.stringify($('#grid').yiiGridView('getSelectedRows')), _csrf : csrfToken}});

这是我的控制者:

public function actionTargetController() {

    if(Yii::$app->request->isAjax) {

        Yii::$app->response->format = Response::FORMAT_JSON;

        if (Yii::$app->request->isPost) {

            $post = Yii::$app->request->post();
            return $post; // Print $post 
        }
   }
}

当我尝试使用xhr.send()发送数据时,我不会在yii2控制器中收到任何内容,而我得到的回复始终是' []' (空数组)

我还尝试使用FormData Object发送数据,但结果是一样的。

我在哪里做错了?提前感谢所有帮助

PS:

_csrf param没有通过,所以我在beforeAction方法中禁用了csrf验证。

0 个答案:

没有答案