在ajax调用之前清除缓存

在ajax调用之前清除缓存,ajax,caching,Ajax,Caching,大家好,我有以下ajax调用函数。我需要用ajax调用映像替换映像。在调用shownewimage函数之前,我需要清除缓存。谢谢 function drawImg(idx) { var imp = document.getElementsByName("img_pan"); fn = fnArr[parseInt(idx)]; path = 'designs/' + fn; $("#img_pan").html('<img id="imgView" sr

大家好,我有以下ajax调用函数。我需要用ajax调用映像替换映像。在调用shownewimage函数之前,我需要清除缓存。谢谢

function drawImg(idx)
{
    var imp = document.getElementsByName("img_pan");
    fn = fnArr[parseInt(idx)];
    path = 'designs/' + fn; 

    $("#img_pan").html('<img id="imgView" src="'+path+'"></img>');
    $("#state_info").show();
    var url="newimage.php?fn="+path+"&act='getcolors'";
    httpRequest("GET", url, shownewimage); // i need to clear cache before the shownewimage function executes.
    request.send("");
}
函数图(idx)
{
var imp=document.getElementsByName(“img_pan”);
fn=fnArr[parseInt(idx)];
路径='设计/'+fn;
$(“#img_pan”).html(“”);
$(“#状态信息”).show();
var url=“newimage.php?fn=“+path+”&act='getcolors';
httpRequest(“GET”,url,shownewimage);//我需要在shownewimage函数执行之前清除缓存。
请求。发送(“”);
}

问题是您无法从javascript中清除浏览器缓存,所以您需要做的是确保服务器对这个newimage.php的响应永远不会被缓存

在PHP中尝试以下方法:

header('Cache-Control: no-cache, no-store, must-revalidate');   
header('Expires: 0');

或者,您可以始终生成随机Url,如/newimage-12345677,您只需要服务器将其映射到实际的php脚本。

回答得好。对于随机url,更容易使用GET参数:url/image?nocache=4658645