Ajax调用从extjs到Yii action url不显示post数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax调用从extjs到Yii action url不显示post数据相关的知识,希望对你有一定的参考价值。

我试图通过ajax将数据传递给yii控制器。

这是我在extJs中的ajax代码:

Ext.Ajax.request({               
   url:action_url,
   type: 'POST',
   dataType: 'json',                                     
   data:{insurance: insurance_id},                                                                      
   success:function(res){ 
     console.log(res);
  },

在Yii控制器中:

public function actionTest()
{    
    $response = Yii::$app->response;
    $response->format = yiiwebResponse::FORMAT_JSON; 
    if(Yii::$app->request->isAjax)       
    { 
        $data = Yii::$app->request->post();
        $response->data = ['data' => $data];            

    } else { 
        $response->data = ['fail' => 'failed'];         
    }
    return $response;                
    Yii::$app->end();

}

我收到的答复如下:

{request: {…}, requestId: 6, status: 200, statusText: "OK",…}
responseText:"{"data":[]}"

我坚持这个。请帮忙。

答案

添加_csrf与其他参数。

Ext.Ajax.request({               
 url:action_url,
 method: 'POST',    
 dataType: 'json',                                     
 params:{insurance: insurance_id, _csrf : csrf_tok} 
 headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' },                                                                     
 success:function(res){ 
  console.log(res);
},

以上是关于Ajax调用从extjs到Yii action url不显示post数据的主要内容,如果未能解决你的问题,请参考以下文章

当 extjs 中有代理 ajax 调用时,如何从响应中获取内容类型?

yii 上传视频(ajax)

发送ajax调用到YII中的函数

Yii 2.0.6 - 从入口到Action执行

Extjs ajax form 提交

Yii2 403在ajax调用期间被禁止