跨域XMLHttpRequest无法在较旧的Internet Explorer版本上运行(拒绝访问)

时间:2014-02-16 02:33:51

标签: javascript internet-explorer xmlhttprequest

跨域XMLHttpRequest适用于Firefox,Safari,Chrome和IE11。

当我尝试测试网站时,IE9在IETester上崩溃。

在IE8上,javascript错误在第36行,char 3中显示“访问被拒绝”。

在IE7上,javascript错误在第37行,char 3中显示“访问被拒绝”。

在IE6上,javascript错误在第37行“char 3”中显示“Permission denied”。

一些javascript:

    var xmlhttp;
    if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
        alert('main');
    } else { // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        alert('ie6 etc');
    }
    xmlhttp.open("GET",URL,true);   // <-- Line 36
    xmlhttp.send();                 // <-- Line 37
    xmlhttp.onreadystatechange = function(){
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
            document.getElementById(wrap_id).innerHTML = xmlhttp.responseText;
        }
    } 

这是来自它要求的php文件:

<?php
    header("Access-Control-Allow-Origin: *");

我想让它在IE8等上工作,谢谢。

2 个答案:

答案 0 :(得分:0)

这有效....

if (window.XDomainRequest) {
    var xdr = new XDomainRequest();
    if (xdr) {
        xdr.onload=function() {
            element.innerHTML = xdr.responseText;
        }
        xdr.open("get", URL, true);
        xdr.send();
    }
}
else {
    var xmlhttp;

答案 1 :(得分:0)

这是我用来在加载和解析XML时用xmlhttprequest解决IE9,IE10问题的Javascript代码。

a