2009-12-01 46 views
0

我正在使用以下功能做圖像上傳/顯示IE8緩存ajaxSubmit

目標是我更新從窗體函數返回的內容的div。我想要ajax,所以我不必重新加載整個頁面來上傳並查看圖像的預覽。

我上傳一個圖像,它顯示到預覽,我裁剪,並做到這一點顯示在一個新的目標(未示出)的另一功能,

的問題是在IE 8似乎緩存所有阿賈克斯的電話,即使我不設置它,讓它顯示的唯一方法是硬刷新。有沒有辦法強制它不緩存? 這在當然所有其他瀏覽器中都能正常工作。

$("#profile-photo").submit(function() { 
     var myOptions = { 
         target: '#preview-target', 
      beforeSubmit: showRequest, 
         success: showResponse, 
         clearForm: true, 
         resetForm:true, 
         cache:false 

       }; 
     $(this).ajaxSubmit(myOptions); 
      return false; 
     }); 

回答

2

我懷疑它是緩存提交,更有可能是緩存圖像的URL。在你的迴應中,你只是發回新的圖像的網址?如果是這樣,請嘗試附加查詢字符串:

<img src="/my/path/to/my/image.jpg?q=12345" /> 

這應該強制所有瀏覽器從服務器重新加載映像。

+0

感謝該方法的工作原理 – matthewb 2009-12-01 21:31:25

1

如果這涉及GET請求,那麼這是真的。如果您沒有任何選項將其更改爲POST,則最好的方法是在每個請求上動態追加帶有時間戳的額外查詢參數。在Javascript中,您可以使用new Date().getTime()