我遇到的问题是,每当我关闭 IE8 中的安全设置时,在我的应用程序中,xmlHTTPRequest 调用都会失败。但是当我打开它时,它工作正常。 安全功能是:工具 -> Internet 选项 -> 高级 -> 安全 -> 启用 native xmlHTTP 支持。 如果选中则不会出现问题,但如果未选中,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);
}
最佳答案
看看this MSDN 上有关 native XMLHTTP 的文章。它还为您的问题提供了解决方案。
编辑
对不起,我没有足够仔细地阅读文章... This一个会回答你的问题。您将不得不尝试是否可以创建 XMLHttpRequest
对象的实例。
if (window.XMLHttpRequest) {
try {
xmlHttpReq = new XMLHttpRequest();
} catch (ex) {
xmlHttpReq = new window.ActiveXObject("Microsoft.XMLHTTP");
}
} else {
//...
}
关于javascript - IE 8 安全设置阻止 javascript 发送 xmlHTTPRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7964478/