Javascript 尽管为我的IE10和Firefox工作,XMLHttpRequest在访问Internet Explorer 10时失败

Javascript 尽管为我的IE10和Firefox工作,XMLHttpRequest在访问Internet Explorer 10时失败,javascript,ajax,internet-explorer,xmlhttprequest,Javascript,Ajax,Internet Explorer,Xmlhttprequest,我创建了一个XMLHttpRequest来获取一个RSS提要和一个ATOM提要。对于我来说,Firefox和InternetExplorer10都很好用。然而,使用IE10访问该站点的访问者经常会收到错误消息,尽管有一段时间错误消息会在一两天后恢复之前停止 我的常规错误捕获脚本将我指向与send命令相同的行,并返回错误消息完成此操作所需的数据尚不可用。通过专门针对XMLHttpRequest的二级错误捕获程序报告的其他信息是:readyState=4,status=0,statusText返回空

我创建了一个XMLHttpRequest来获取一个RSS提要和一个ATOM提要。对于我来说,Firefox和InternetExplorer10都很好用。然而,使用IE10访问该站点的访问者经常会收到错误消息,尽管有一段时间错误消息会在一两天后恢复之前停止

我的常规错误捕获脚本将我指向与send命令相同的行,并返回错误消息完成此操作所需的数据尚不可用。通过专门针对XMLHttpRequest的二级错误捕获程序报告的其他信息是:readyState=4,status=0,statusText返回空白无文本,无“null”,仅为空

有问题的网站有一个带有umlauts的域名,但我确保使用相对地址“/some.url”

我在网上尝试了许多不同的潜在解决方案,但似乎没有一个能解决这个问题。访问者的浏览器被确认使用了最新版本的javascript

是什么原因导致访问者出现此问题? 如何进一步确定问题的原因? 这个问题可以避免吗

if ( window.XMLHttpRequest ) {
    var xhr = new XMLHttpRequest();
}
else if ( window.ActiveXObject ) {
    try {
        var xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch( e ) {
        var xhr = new ActiveXObject("Msxml2.XMLHTTP");
    }
}
var feedtitle = '';
var feedno = 0;
var feedtype = '';
var feedmax = 1;
function feedcycler(n) {
    feedno = n+1;
    if (feedno == 2) {audrey('Forum','/forum/feed.php?mode=news','atom',10)};
    if (feedno == 1) {audrey('Press','/press/feed/','rss',1)};
}
function audrey(feedtitl,feed,feedt,feedm) {
    // 'feed' contains the actual url, the rest of the variables are used in 'feedme2'
    feedtitle = feedtitl;
    feedtype = feedt;
    feedmax = feedm;
    if ( window.XMLHttpRequest ) {
        xhr = new XMLHttpRequest();
    }
    else if ( window.ActiveXObject ) {
        try {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch( e ) {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        }
    }
    if (xhr != null) {
        xhr.open("GET", feed, true);
        xhr.onerror = function (e) {
            var fs = '<div class="notes"><h3>'+feedtitle+'</h3>';
                fs += '<div>';
                    fs += 'Feed failure.'
                    fs += '<br/> State: ' + xhr.readyState;
                    fs += '<br/> Status: ' + xhr.status;
                    fs += '<br/> Text: ' + xhr.statusText;
                fs += '</div>';
            fs += '</div>';
            document.getElementById('news').innerHTML += fs;
        };
        xhr.onload = feedme1;
        xhr.send();
    }
    else {
        var fs = '<div class="notes"><h3>'+feedtitle+'</h3>';
        fs += '<div>Din webbläsare saknar AJAX-funktionalitet.</div>';
        fs += '</div>';
        document.getElementById('news').innerHTML += fs;
    }
}
function feedme1() {
    if (xhr.readyState === 4) {
        if (xhr.status === 200) {
            feedme2(xhr)
        }
        else {
            console.error(xhr.statusText);
        }
    }
}
function feedme2 (xhr) {
    // this function contains further processing, formatting and output of the data
}

status=0表示未处理响应。运行此脚本的页面位于哪个域上,您试图从哪个域获取URL?它们对您的用户和对您来说是一样的吗?我这样问是因为这听起来像是一个跨域的问题。根据我收到的截图,访问者使用的地址格式与我使用的umlauts相同,而不是向后兼容的格式。我试图使用相对地址“/forum/feed.php?mode=news”和“/press/feed/”从同一个域获取URL。啊,右-相对URL=不是跨域问题,所以忽略它。我我没有一个好的答案给你。你能看看你的服务器日志,看看它们是否真的在攻击你的服务器吗?status=0部分表示他们的浏览器未接收或处理响应。这可能是由于多种原因造成的。你需要确定控制流程中的哪些地方出现了问题。我的网站每天都会有数百次独特的访问,我不知道如何在统计数据中找到这个用户。。。我还可以做些什么来确定控制流中的哪些地方出现故障?