2011-12-12 52 views
0

我打電話給位於另一主機上的Web服務。 它在IE瀏覽器而不是在FF,歌劇等工作正常.. 這裏是我的代碼:從JavaScript調用Web服務無法正常工作,除非在IE中

if(xmlHttpReq.readyState == 0){ 
     xmlHttpReq.open('POST', strURL, true); 
     xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
     xmlHttpReq.onreadystatechange = function() { 
      if (xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) { 
       var resultString = xmlHttpReq.responseXML; 
       document.getElementById('webserviceresponsetext').value = resultString.text; 
      } 
     } 
     xmlHttpReq.send(packet); 
    } 
} 

var packet = '<?xml version="1.0" encoding="utf-8" ?>' + 
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '+ 
'xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> '+ 
'<soap:Body>'+ 
'<authenticate xmlns="http://interfaces.service.webservices.webs.eic.com">" '+ 
'<ParameterName>abc</ParameterName>'+ 
'<ParameterName>1234</ParameterName>'+ 
'</authenticate></soap:Body>'+ 
'</soap:Envelope>'; 

這種方法只是調用身份驗證方法和返回true/false,如果用戶ABC是有效的用戶或not.1234是abc用戶的密碼。 請幫助... 在此先感謝...

我收到此錯誤FF:

XML Parsing Error: no element found Location: moz-nullprincipal:{cb5142f9-33a8-44ca-bc9d-60305ef7cea8} Line Number 1, Column 1: 
+0

你如何創建XHR又是什麼服務器的響應是什麼樣子? – TomTasche

+0

服務器的響應爲空,xmlhttp.status = 0且就緒狀態= 4 – Ved

+0

第一次猜測:變量包在.send()上不可見,或者第二次猜測:您的內容類型錯誤。 – TomTasche

回答

1

如果你想AJAX來跨瀏覽器可靠地工作,我推薦使用jQuery

它會直接抽象出處理XmlHttpReq的複雜性,爲您提供更清晰的語法,並可在所有主流瀏覽器中使用。

看看jQuery's ajax API開始。

你的代碼可能看起來與此類似:

$.ajax({ 
    url: "test.html", 
    context: document.body, 
    success: function(){ 
    $(this).addClass("done"); 
} 
}); 
+0

抱歉,但我不能使用jquery,我需要使用JS解決此問題 – Ved

相關問題