如何修复IE和Firefox中的ajax请求?

时间:2015-10-12 12:11:07

标签: ajax internet-explorer

我在firefox和Internet Explorer上测试我的web应用程序时遇到问题,问题似乎是我的应用程序对服务器进行的ajax调用我实现了这一点,当我使用FIDDLER WEB DEBUGGER调试我的应用程序时我注意到了当我使用IE或Firefox时,我没有得到任何回应。

我尝试将我的请求类型从“GET”更改为“POST”并添加缓存破坏程序而没有任何成功。

请窥视我的代码:

这是我创建我的ajax对象的地方:

function createXmlHttpRequestObject()
{
    var xmlHttp;
    if(window.ActiveXObject){
        try{alert(0);
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e){
            xmlHttp = false;
        }
    }
    else{
        try{
            xmlHttp = new XMLHttpRequest();
        }
        catch(e){
            xmlHttp = false;
        }           
    }

    if(!xmlHttp){
        alert("Can't create object!!!");
    }
    else{
        return xmlHttp;
    }
}

这是我发送请求的地方:

function process(){
  var params = "word="+word;
  if(xmlHttp.readyState==0 || xmlHttp.readyState==4){
    xmlHttp.open("POST","/gwizz/scripts/definition.php",true);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length",params.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.onreadystatechange = handleServerResponse;
    xmlHttp.send(params);        
  }else{
    setTimeout('process()',1000);
  }
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

@Moor 我无法回答究竟是什么问题,但这里有一些可能对你有帮助的指针。

  • XMLHttpRequest - 也许这是一个主题,但认为它对更多与浏览器无关的代码很有用。 我建议使用创建Ajax请求并仅使用ActiveXObject,以防您无法找到XMLHttpRequest。大多数浏览器(包括IE8 +)都支持此对象,因此您依赖浏览器的代码较少。例如以下从http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp

    复制
    var xmlHttp;
    if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    } else {
       // code for IE6, IE5
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
  • 使用开发人员工具Firefox和IE现代版本附带非常有用的开发人员工具。检查网络部分,然后执行希望调用ajax调用的Web应用程序的单击。实际触发的http请求的完整详细信息可在网络部分中找到。它将向您显示浏览器如何查看请求。

  • 使用console.log这个问题讨论了IE中可用的一些日志记录支持。 firefox也提供相同的功能。您应该能够确定代码执行失败的位置。 Does IE9 support console.log, and is it a real function?

如果我猜一下,我会说用于连接服务器的URL可能会产生404.