使用IE浏览器获取ajax调用时出现304错误

时间:2012-11-01 04:15:16

标签: php javascript mysql ajax internet-explorer

我写了一个ajax调用,但我的IE浏览器有问题,因为在Chrome中,ajaxFunction(1)工作正常(我在浏览时在浏览器的网络部分获取200 OK)。另一方面,使用IE执行相同操作的同一页面,函数返回304 error。我尝试使用IE手动(call.php?which=1),它正在工作。在这种情况下,我找不到问题是什么?

PS。我的代码是手工编写的。我想知道IE浏览器的问题是什么。哪些代码在浏览器中运行不同?

以下是一些代码:

function ajaxFunction(a)
{
    var ajaxRequest;
    try {
        ajaxRequest = new XMLHttpRequest();
    } catch (e) {
        try {
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                alert("Your browser broke!");
                return false;
            }
        }
    }
    ajaxRequest.open("GET","call.php?which="+a,true);
    ajaxRequest.send(); 
}

除此之外,

/* in call.php after connection codes */
$came = $_GET['which'];
mysql_query("UPDATE ...");

更新

我使用的是IE 9.0(更新版本9.0.10)

我还将此代码添加到call.php

header("Cache-Control: no-cache, must-revalidate");

答案

使用缓存控制和缓存清理后,浏览器运行良好。

1 个答案:

答案 0 :(得分:0)

我认为这些链接可以解决根本原因 - 以及可能的解决方案:

显然,IE“积极地缓存ajax请求”。以上链接可以帮助您解决问题。

PS:

哪个版本的IE遇到此问题?