2009-10-12 70 views
0

我有一个js文件与ajax调用在IE6中工作正常,但不是在IE7或FF。有人可以帮忙吗?Ajax调用不工作在IE7和FF

window.onload = function() { 
    var xmlhttp; 
    var url = "myurl"; 
    if (window.XMLHttpRequest) { 
     // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    } 
    else if (window.ActiveXObject) { 
    debugger; 
    alert("Hello"); 
     // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    else { 
     alert("Your browser does not support XMLHTTP!"); 
    } 
    xmlhttp.open("GET", url, true); 
    xmlhttp.send(null); 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4) { 
      alert(xmlhttp.responseText); 
     } 
    } 
} 

在IE7中,我遇到访问被拒绝错误。请帮忙。

编辑: 我现在使用jQuery, 代码尝试它:

$(function() {  
     $.ajax(
        { 
         type: "GET", 
         url: "myurl", 
         datatype: "html", 
         success: function(xhtml) { 
          $("#con").html(xhtml); 
         }, 
         error: function() { 
          displayMessage(......); 
         } 
        }); 
    }); 

不过它在IE6而不是在Others.If其跨域问题的工作,那么如何解决这个问题?

+0

'var url =“myurl”; '似乎是错误的 – jantimon 2009-10-12 11:17:43

+0

那么这是如何在IE6中工作? – rahul 2009-10-12 11:19:01

+0

但我认为我得到了错误,由于该网址..现在我创建了一个Default.aspx而不是myurl我打电话Default.aspx..its工作正常然后..但不知道为什么myurl(web服务调用)在IE6中工作,但不在IE7中工作。 – Wondering 2009-10-12 11:21:52

回答

0

这可能是一些安全问题。通过将您在此使用的所有网址添加到受信任的网站列表中,查看它是否有效。

0

当涉及到Javascript和跨域策略时,IE6已经知道错误/问题。这就是为什么(除其他原因外)IE6不再支持许多大型组织的跨浏览器兼容性(为什么鼓励有这种漏洞的东西?)

那么我的猜测是你的var url = "myurl"指向另一个域或子域上的内容。但我们需要更多的细节来确定。

+0

IE6中存在哪些跨域问题? – kangax 2009-10-12 12:46:54

+0

查看以下内容:http://www.sans.org/top20/#c1我知道某处我发现了一个非常特定的地方。我会看看我能不能挖掘它。 – Anthony 2009-10-12 14:40:55