YII中的AJAX queryString不匹配

时间:2013-03-08 15:25:59

标签: ajax url yii query-string

我在页面

中有一个带有AJAX脚本的YII视图
        <script>
            $(".tasks-add").click(function(){
                $.ajax({
                    type: 'get',
                    url: '<?php echo $this->createUrl('field')?>',
                    data: {
                        index: 1
                          },
                    });
                });
        </script>

现在这个JS正在以普通的URL样式(http://myapp/task/field?index=1)进行调用,尽管我已经使用YII urlManager来优化URL的“路径”样式:

'urlManager'=>array(
              'urlFormat'=>'path',
              'showScriptName'=>false,

我收到“错误请求错误”,因为AJAX请求的网址是旧的丑陋?arg = value1 style 。是否有可能使AJAX调用URL不具有?index=1之类的查询字符串,而是像http://myapp/task/field/index/1

3 个答案:

答案 0 :(得分:2)

YII方式

<script>
        $(".tasks-add").click(function(){
            $.ajax({
                type: 'get',
                url: '<?php echo $this->createUrl('field',array('index'=>1));?>'
            });
    </script>

OR

<script>
        $(".tasks-add").click(function(){
            <?php echo CHtml::ajax(array(
                 'url'=>array('field','index'=>1),
                 'type'=>'get',
              ));?>
            });
    </script>

答案 1 :(得分:1)

只需连接URL字符串即可。默认情况下,jQuery ajax会在使用GET并包含数据时附加查询字符串参数。

答案 2 :(得分:1)

是。手动完成。

    <script>
        $(".tasks-add").click(function(){
            $.ajax({
                type: 'get',
                url: '<?php echo $this->createUrl('field')?>'+'/index/1'
            });
    </script>