在新的ActiveXObject上使用JavaScript崩溃的经典ASP页面

问题描述:

我有一个asp经典页面,但是在javascript上设置了语言。这样在新的ActiveXObject上使用JavaScript崩溃的经典ASP页面

<%@ Language=JavaScript %>

,如果我尝试创建一个像一个HTTP请求这

var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.4.0"); 

var xmlhttp = new XMLHttpRequest(); 

的页面只是说像一个内部服务器错误一般性错误崩溃发生。有谁知道我可以如何调查和解决这个问题?

谢谢

该代码并不意味着要在服务器上执行。它意味着执行客户端。服务器没有安装XHR组件。

+0

这部分'var xmlhttp = new ActiveXObject(“MSXML2.ServerXMLHTTP.4.0”);'实际上适用于旧服务器,但它不适用于新服务器。 – omega

+0

@omega因为新服务器没有安装该ActiveX控件。 –

+0

我该如何安装它? – omega

首先,您需要在IIS中启用详细的错误页面以摆脱通用错误页面。

我敢打赌这是一个ActiveX component can't create object错误,但请参阅How To Configure IIS7 To Show ASP Errors?这是一个带截图的肝指南。

Microsoft不再支持MSXML 4.0。

建议使用MSXML 6.0。它与4.0兼容,所以用6.0代替4.0就足够了。

查看MSXML Roadmap了解更多信息。

因此,使用var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0");或者如果您太挑剔,为了向后兼容性,请像下面那样实例化对象。

var xmlhttp; 
try { 
    xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.4.0"); 
} 
catch(e) { 
    try 
    { 
     xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0"); 
    } 
    catch(e) 
    { 
     throw "object can't created"; 
    } 
}