Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何阻止IE缓存我的XHR 数据 函数调用(url) { var xhr=new XMLHttpRequest(); xhr.open(“GET”,url,true); xhr.onload=函数(e){ if(xhr.readyState==4){ 如果(xhr.status==200){ 警报(xhr.responseText); }否则{ 警报(“”); } } }; xhr.onerror=函数(e){ 警报(“”); }; xhr.send(空); }_Javascript_Php_Ajax - Fatal编程技术网

Javascript 如何阻止IE缓存我的XHR 数据 函数调用(url) { var xhr=new XMLHttpRequest(); xhr.open(“GET”,url,true); xhr.onload=函数(e){ if(xhr.readyState==4){ 如果(xhr.status==200){ 警报(xhr.responseText); }否则{ 警报(“”); } } }; xhr.onerror=函数(e){ 警报(“”); }; xhr.send(空); }

Javascript 如何阻止IE缓存我的XHR 数据 函数调用(url) { var xhr=new XMLHttpRequest(); xhr.open(“GET”,url,true); xhr.onload=函数(e){ if(xhr.readyState==4){ 如果(xhr.status==200){ 警报(xhr.responseText); }否则{ 警报(“”); } } }; xhr.onerror=函数(e){ 警报(“”); }; xhr.send(空); },javascript,php,ajax,Javascript,Php,Ajax,如果我在chrome(最新版本)中运行上述代码并单击div它会发出警报a 如果在不刷新窗口的情况下编辑php文件并将echo'a'更改为echo'b',然后保存它并单击div,它会发出警报b 以上是预期的行为。在最新版本的internet explorer中,由于某些原因,它总是向a发出警报 为什么请?为了防止缓存问题(通常响应头会在一定程度上缓解这一问题),您最好自己破坏缓存: <?php if(isset($_GET['dt'])) { echo 'a'

如果我在chrome(最新版本)中运行上述代码并单击
div
它会发出警报
a

如果在不刷新窗口的情况下编辑php文件并将
echo'a'
更改为
echo'b'
,然后保存它并单击div,它会发出警报
b

以上是预期的行为。在最新版本的internet explorer中,由于某些原因,它总是向
a
发出警报

为什么请?

为了防止缓存问题(通常响应头会在一定程度上缓解这一问题),您最好自己破坏缓存:

<?php
    if(isset($_GET['dt']))
    {
        echo 'a';
        die();
    }
?>
<div onclick="call('data_call.php?dt=a')">DATA</div>
<script>
function call(url)
{
    var xhr = new XMLHttpRequest();
    xhr.open("GET", url, true);
    xhr.onload = function (e) {
        if (xhr.readyState === 4) {
            if (xhr.status === 200) {
                alert(xhr.responseText);
            } else {
                alert("");
            }
        }
    };
    xhr.onerror = function (e) {
        alert("");
    };
    xhr.send(null);
}
</script>

如果需要刷新IE,可能需要一段时间才能注意到您的code@Arijit慕克吉:它不起作用。URL仍然是一样的,那么你期待什么呢?如果不需要任何缓存,则应确保每个请求都是唯一的,方法是在末尾添加一个随机数,例如
&=1314124.123
。若要检查是否存在缓存问题,请在第二次请求之前清除浏览器缓存。我不信任任何浏览器tbh的缓存设置。
function getUniqueURL(url)
{
    return url + (url.indexOf('?') == -1 ? '?' : '&') + '_=' + new Date().getTime();
}

xhr.open("GET", getUniqueURL(url), true);