我面临的问题是,每当我在IE8中关闭安全设置时,在我的应用程序中,当我打开它时,xmlHTTPRequest调用是failed.However,它工作得很好。安全功能是: Tools -> Internet Options -> Advance -> security -> Enable Native xmlHTTP support。如果选中,则不会出现问题,但如果不选中,xmlHTTPReq将无法向服务器发送请求。(我在调试器窗口中看不到cgi调用)。
因此,我的问题是:是否可以检测到此安全设置是否以编程方式启用了JavaScript?
我的cgi调用代码如下:
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);
} 发布于 2011-11-01 18:39:15
看看this上关于MSDN上原生XMLHTTP的文章。它还为您的问题提供了解决方案。
编辑我很抱歉,我没有仔细阅读这篇文章...This one将回答您的问题。如果可以创建XMLHttpRequest对象的实例,则必须尝试。
if (window.XMLHttpRequest) {
try {
xmlHttpReq = new XMLHttpRequest();
} catch (ex) {
xmlHttpReq = new window.ActiveXObject("Microsoft.XMLHTTP");
}
} else {
//...
}https://stackoverflow.com/questions/7964478
复制相似问题