我在PHP中创建了一个关于周项目的问题,我使用AJAX使运行时工作和MySQL作为数据库工作。我的整个项目在Firefox甚至Google Chrome中都运行得非常好。但它不适用于Internet Explorer。
它不会进行更改。 例如。如果我使用IE发布,它将不会在响应中显示已发布的问题,即使我尝试刷新。但是,如果我在Firefox中刷新我的项目,它会显示我发布的问题。 要查看IE中的更改,我实际上必须关闭IE并重新开始。
你能否建议我应该做些什么来摆脱这个问题?
答案 0 :(得分:3)
对于IE,您必须使用Active X
var xmlhttp;
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
alert("Your browser does not support XMLHTTP!");
}
答案 1 :(得分:1)
IE倾向于缓存AJAX响应。尝试在查询中添加一些随机性,使其看起来每次有AJAX调用时都会请求“新”页面。
答案 2 :(得分:1)
如果您使用AJAX发布问题,您是使用自己的自定义Javascript还是使用框架(如jQuery)?如果你正在编写自己的javascript来处理所有事情,请确保你从浏览器中获得正确的XmlHttpRequest(我用来获取正确对象的代码如下)。此外,您没有说明您正在使用的IE版本。如果您使用的是IE8,则可以使用开发人员工具(按F12或工具 - >开发人员工具)来调试您的JavaScript。
获取XmlHttpObject的代码:
function GetXmlHttpObject() {
var xmlHttp = null;
try {
xmlHttp = new XMLHttpRequest();
} catch (e) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
答案 3 :(得分:0)
对于ajax部分,请参阅其他答案,至于刷新部分,您可能希望了解如何避免IE中的客户端缓存