簡體   English   中英

CodeIgniter緩存防止AJAX調用

[英]CodeIgniter cache preventing AJAX calls

我正在codeigniter中建立我的網站。 當用戶滾動時,我正在一頁上進行多個Ajax調用。 我的網站也被codeigniter緩存。 我似乎緩存阻止了ajax調用。

它是這樣的:
我刷新我的網站,並在用戶滾動之后進行了第一個ajax調用。 在那之后應該有幾個ajax調用,但是它們不執行(不知道為什么)。 然后刪除緩存,回到站點並滾動。 同樣,僅執行第一個ajax調用。

因此,我最好的猜測是緩存可以以某種方式阻止調用 ,但是我不知道如何繞過該問題。

我對ajax和codeigniter比較陌生。 我用谷歌搜索,但沒有任何有用的東西出現。 我希望你們能夠幫助我:)

假設您正在對以下內容進行Ajax調用:

www.yoursite.com/some_class_to_cache/some_function/some_parameter

問題是路由器響應緩存的頁面

www.yoursite.com/some_class_to_cache/some_function/cached_pa​​rameter

因此,您收到的響應是此緩存的頁面,而不是ajax響應。 要更改此行為,一種解決方案是在其他未緩存的位置創建一個ajax調用處理程序。

www.yoursite.com/some_ajax_class/some_function/some_parameter

然后從那里創建some_class_to_cache對象,並使用some_parameter調用some_function

jquery有解決方案,但codeigniter返回404頁面

$.ajaxSetup({ cache: false });

從我可以看到的問題是,如果我可以找到使url與之配合使用的方法,則jQuery使用_?=xxx來表示其稱為Cache Buster的緩存值。

那應該更容易解決問題

www.yoursite.com/some_class_to_cache/some_function/some_p
    arameter?_=1469969058680

這就是為我解決的問題

將config.php更改為此

$config['uri_protocol'] = "PATH_INFO";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM