【问题标题】:ajax call controller in yii (javascript)yii 中的 ajax 调用控制器(javascript)
【发布时间】:2012-11-20 12:50:18
【问题描述】:

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

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

我真的需要一些帮助

【问题讨论】:

    标签: php javascript jquery ajax yii


    【解决方案1】:

    试着放

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

    而不是

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

    问题是在创建 url 中你需要输入控制器 ID 而不是控制器全名。

    如果它不起作用,您可以同时尝试 Explicacao/ajaxRequestexplicacao/ajaxRequest,因为您的 rout 可能区分大小写,具体取决于您的配置

    【讨论】:

    • 我们可以从配置中查看您的 url 规则吗?您是否尝试过 'actions'=>array('index','view', 'test', 'ajaxRequest'),将“ajaxrequest”大写?
    【解决方案2】:

    试试这个

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

    这将获取当前 URL 的路径名

    【讨论】:

      猜你喜欢
      • 2016-03-26
      • 1970-01-01
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多