为什么Yii ajax请求包含一个名为'_'的附加参数?

时间:2013-04-07 06:00:11

标签: ajax yii

我使用以下代码:

echo CHtml::dropDownList('book', 0, CHtml::listData($books,'id','title'),
                     array(
                        'ajax' => array(
                        'type'=>'GET', 
                        'url'=>$this->createUrl('book/allcatalog'), 
                        'data'=>array('book'=>'js:this.value'),
                        'dataType'=>'json',
                        'success'=>'js:function(data){
                            console.log(data);
                        }'
                    )));    

使用firebug,我发现ajax请求是“www.xxxx.com/index.php/book/allcatalog?book=1&_=1365306810200”。为什么有参数_ = 1365306810200?

1 个答案:

答案 0 :(得分:3)

感谢DCoder的帮助。

最后,我从JQuery.ajax()文档中找到了对此问题的解释。

> cache(默认值:true,false,对于dataType'script'和'jsonp') 类型:布尔值 如果设置为false,它将强制浏览器不缓存请求的页面。注意:将缓存设置为false只能与HEAD和GET请求一起正常工作。它的工作原理是将“_ = {timestamp}”附加到GET参数。其他类型的请求不需要该参数,但在IE8中,当对已经由GET请求的URL进行POST时,该参数除外。

也就是说,附加的'_'请求参数由jquery生成,cache = true default。