在我的项目中,我正在向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验证。