2011-10-20 38 views
0

我面臨着一個奇怪的問題,在不同的IE8版本的同一個Web應用程序的不同行爲。一個版本就像IE 8 CO(公司管理員)即版本A和另一個是正常的IE 8版本。即版本B 問題出在版本A中,我在onload事件上調用一個cgi,它負責在板上刷新文件。但是在vA中,它根本不會被調用,我可以從apache web服務器的日誌以及內部日誌記錄方法中找到它。 在vB的情況下,它工作正常,按預期進行。不同的IE8版本的網絡應用程序的行爲

你知道可能的原因嗎?

注 - 兩個系統/環境是相同的,只是一個版本不同。 此應用程序在Firefox中工作完美; y。

請幫助我,因爲我已經在這方面花了很多時間,也搜索了很多,但沒有找到相同的原因。 除非我找不到我不能在我的項目中進行的方式。

我認爲IE8的vA(公司管理員)可能由於安全原因而被拒絕進行文件傳輸。

感謝很多提前...

+0

當你在相同版本的IE瀏覽器的兩個副本的同一部位的不同行爲,首先關注的地方是開發工具欄(按F12把它),並檢查其中一個是否在IE7兼容模式下運行。之後,檢查瀏覽器安全配置。 – Spudley

+0

感謝您的回覆... 我會按照您的說明檢查。 – Ved

回答

2

我找到了解決辦法... !!! 這是IE8中的一個安全設置導致了這個問題。 這就像是 - 工具 - > Internet選項 - >高級 - >安全 - >「啓用本機XMLHttp支持」。當它被禁用,然後IE無法發送XHR到服務器,因此它被絞死。 我用下面的代碼解決了這個:

function getXMLHttpRequest() { 
     var xmlHttpReq; 
     if (window.XMLHttpRequest) { 
      xmlHttpReq = new window.XMLHttpRequest; 
     } 
// Instead of using else if(window.ActiveXObject("Microsoft.XMLHTTP")){ 
//  xmlHttpReq = new window.ActiveXObject("Microsoft.XMLHTTP"); 
//} 
//I used this :- 
     else { 
      try { 
       xmlHttpReq = new window.ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      catch(ex) { 
       alert('Exception in initializing the XMLHttpRequest object '+ex.toString()); 
       return null; 
      } 
     } 
     return xmlHttpReq; 
    } 
+1

爲了澄清... IE8可以通過2種方式發送AJAX請求。通過「原生」XMLHTTPRequest(例如純JavaScript)或通過ActiveX對象(多個版本)。當實現一個AJAX解決方案時(如果不使用爲你做的事情(例如jQuery)),你應該確保你嘗試了本地版本,但是如果你遇到具有奇怪安全設置或更老版本的IE用戶,你也應該爲ActiveX版本提供回退的IE(例如IE7)不支持本地版本。 – scunliffe

+0

是的感謝您的澄清:-) – Ved

相關問題