在現在正在做的流程編排架構中有些業務需要用到ajax技術來做非同步通訊,這塊的業務主要是在普元的活動屬性頁面上添加業務功能的擴充頁,這塊的操作普元的API中講解的非常詳細,在這就不多做介紹,這裡主要是說說在這塊操作中遇到的問題。
因為要非同步來做儲存業務功能,所以要用到ajax,而我們知道ajax的核心就是
XMLHttpRequest,而要用到這個核心的對象,我們就要建立這個對象,這個對象的建立是區分瀏覽器的,主要還是在IE瀏覽器中有所不同。而這塊出現的問題也是因為是IE瀏覽器。
建立xmlHttpRequest對象的代碼應該是這樣的:
[javascript]
function createXMLHttpRequest(){
//表示當前瀏覽器不是ie,如ns、firefox
if(window.XMLHttpRequest){
xmlHttp=newXMLHttpRequest();
}elseif(window.ActiveXObject){
try{
xmlHttp=newActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlHttp=newActiveXObject("Microsoft.XMLHTTP");
}catch(e){
alert(“您的瀏覽器不支援ajax!”);
}
}
}
}
這裡如果不是ie瀏覽器就可以直接new出來,但是如果是ie瀏覽器的話,就要分情況了,如果是6.0+的話就是用第二種方法也就是msxml2的,如果是5.5+的話就用microsoft的。
但是我們目前做開發的時候基本上都是ie6.0以上的,所以我們經常寫的話就把中間的那個省去直接用Microsoft的建立。
然而我們遇到的問題就是在建立的時候xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");寫成了xmlHttp=new ActiveXObject(Microsoft.XMLHTTP);這樣的在其他瀏覽器上都執行成功,但是到了IE上就出現問題了,而且IE7-9都沒有問題,僅僅是IE6出現了問題,因為去客戶那裡部署,客戶用的是IE6,由於疏忽引號沒有了,始終執行不成功。通過檢測發現是因為少了引號。一時的疏忽會浪費好長時間的調試。
所以寫這篇部落格分享給大家,以後這樣的問題希望大家注意。