2013-04-07 28 views
0

我使用以下代碼:爲什麼Yii ajax請求包含一個名爲'_'的附加參數?

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); 
         }' 
        )));  

隨着螢火,我發現了AJAX請求是 「www.xxxx.com/index.php/book/allcatalog?book=1 & _ = 1365306810200」。爲什麼有參數_ = 1365306810200?

+6

Cache busting:[1](http://stackoverflow.com/questions/8988151/),[2](http://stackoverflow.com/questions/9692665/)。 – DCoder 2013-04-07 06:04:06

+0

現在,這是一個簡單而正確的答案 – 2013-04-07 23:00:31

回答

3

感謝DCoder的幫助。

最後,我從JQuery.ajax()文件找到這個問題的解釋。

> 緩存(默認值:true,false爲的dataType「腳本」和「JSONP」) 類型:Boolean 如果設置爲false,這將迫使要求不被瀏覽器緩存的頁面。注意:將緩存設置爲false只能在HEAD和GET請求中正常工作。它通過在GET參數中附加「_ = {timestamp}」來工作。其他類型的請求不需要該參數,除了在IE8中對POST已經請求的URL進行POST時以外。

也就是說,附加'_'請求參數是由jquery使用cache = true default生成的。

相關問題