首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE 8安全设置阻止javascript发送xmlHTTPRequest

IE 8安全设置阻止javascript发送xmlHTTPRequest
EN

Stack Overflow用户
提问于 2011-11-01 17:18:30
回答 1查看 10.8K关注 0票数 2

我面临的问题是,每当我在IE8中关闭安全设置时,在我的应用程序中,当我打开它时,xmlHTTPRequest调用是failed.However,它工作得很好。安全功能是: Tools -> Internet Options -> Advance -> security -> Enable Native xmlHTTP support。如果选中,则不会出现问题,但如果不选中,xmlHTTPReq将无法向服务器发送请求。(我在调试器窗口中看不到cgi调用)。

因此,我的问题是:是否可以检测到此安全设置是否以编程方式启用了JavaScript?

我的cgi调用代码如下:

代码语言:javascript
复制
try{
        var xmlHttpReq;
        var destinationURL = cgiBinPath+"helloworld.cgi?start";
        // IE 7+, Mozilla/Safari
        if (window.XMLHttpRequest) {
            xmlHttpReq=new XMLHttpRequest();
        }
        //IE 5,6
        else {
            xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
        }
        if (xmlHttpReq.readyState == 0){
            xmlHttpReq.open('GET', destinationURL, true);
            xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            xmlHttpReq.onreadystatechange = function(){
                if(xmlHttpReq.readyState == 4){
                  //Control never reaches here
                }
            }               
            xmlHttpReq.send();
        }
    }catch(e){
        alert('Exception '+e);
    }  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-01 18:39:15

看看this上关于MSDN上原生XMLHTTP的文章。它还为您的问题提供了解决方案。

编辑我很抱歉,我没有仔细阅读这篇文章...This one将回答您的问题。如果可以创建XMLHttpRequest对象的实例,则必须尝试。

代码语言:javascript
复制
if (window.XMLHttpRequest) {
    try {
        xmlHttpReq = new XMLHttpRequest();
    } catch (ex) {
        xmlHttpReq = new window.ActiveXObject("Microsoft.XMLHTTP");
    }
} else {
    //...
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7964478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档