yii中的ajax调用控制器(javascript)

时间:2012-11-20 12:50:18

标签: php javascript jquery ajax yii

由于某些原因,这不起作用,我找不到让它工作的方法!

名为“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'); ?>

我真的需要一些帮助

2 个答案:

答案 0 :(得分:6)

尝试放

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

而不是

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

问题在于创建网址,您需要将控制器ID设置为控制器的全名。

如果它不起作用,您可以同时尝试Explicacao/ajaxRequestexplicacao/ajaxRequest,因为根据您的情况,您的溃败可能区分大小写

答案 1 :(得分:-1)

试试这个

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

这将获取当前URL的路径名