0

我使用以下代码:

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?

4

1 回答 1

3

感谢 DCoder 的帮助。

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

> 缓存(默认:true,对于 dataType 'script' 和 'jsonp' 为 false) 类型:Boolean 如果设置为 false,它将强制浏览器不缓存请求的页面。注意:将缓存设置为 false 仅适用于 HEAD 和 GET 请求。它通过将“_={timestamp}”附加到 GET 参数来工作。其他类型的请求不需要该参数,除非在 IE8 中对已由 GET 请求的 URL 进行 POST。

也就是说,额外的'_'请求参数是由jquery产生的,默认为cache=true。

于 2013-04-08T02:55:04.547 回答