ajax call controller in yii (javascript)



由于某种原因,这不起作用,我找不到使其工作的方法!

在我的名为"ExplicacaoController"的控制器上,我有这个:

public function accessRules()
...
'actions'=>array('index','view', 'test', 'ajaxrequest'),
...
public function actionAjaxRequest()
    {
      $val1 = $_POST['val1'];
      $val2 = $_POST['val2'];
      echo "something";
      Yii::app()->end();
    }

在我看来,我有:

<script type="text/javascript">
...
$.ajax({
      type: "POST",
      url:    "<? echo Yii::app()->createUrl('explicacaoController/ajaxRequest'); ?>",
      data:  {val1:1,val2:2},
      success: function(msg){
           alert("Sucess")
          },
      error: function(xhr){
      alert("failure"+xhr.readyState+this.url)
      }
    });
...

发生的情况是我总是收到此错误:

failure4<? echo Yii::app()->createUrl('explicacaoController/ajaxRequest'); ?>

我真的需要一些帮助

尝试将

<? echo Yii::app()->createUrl('Explicacao/ajaxRequest'); ?>

而不是

<? echo Yii::app()->createUrl('explicacaoController/ajaxRequest'); ?>

事情是在创建 url 中,您需要输入控制器 ID 而不是控制器全名。

如果它不起作用,您可以尝试Explicacao/ajaxRequestexplicacao/ajaxRequest,因为您的路由可能区分大小写,具体取决于您的 conf

试试这个

url: $(location).attr('pathname') + '?r=anyControllerId/actionId',

这将获取当前 URL 的路径名

最新更新