2017-07-07 78 views
0

我有一個asp經典頁面,但是在javascript上設置了語言。這樣在新的ActiveXObject上使用JavaScript崩潰的經典ASP頁面

<%@ Language=JavaScript %>

,如果我嘗試創建一個像一個HTTP請求這

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

var xmlhttp = new XMLHttpRequest(); 

的頁面只是說像一個內部服務器錯誤一般性錯誤崩潰發生。有誰知道我可以如何調查和解決這個問題?

謝謝

回答

1

該代碼並不意味着要在服務器上執行。它意味着執行客戶端。服務器沒有安裝XHR組件。

+0

這部分'var xmlhttp = new ActiveXObject(「MSXML2.ServerXMLHTTP.4.0」);'實際上適用於舊服務器,但它不適用於新服務器。 – omega

+0

@omega因爲新服務器沒有安裝該ActiveX控件。 –

+0

我該如何安裝它? – omega

1

首先,您需要在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"; 
    } 
}