我正在尝试访问XMLHTTPRequest.open方法,甚至包括了netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");,但仍然无法工作。
我正在使用JavaScript和HTML来访问Web服务。
任何帮助都将非常感激。
代码:
这是调用Web服务的HTML代码。在页面加载时,会运行一个名为"GetDataFrmWS()"的JavaScript函数。它定义了两个全局变量:objHttp和objXmlDoc,并调用另一个名为"getDataFromWS()"的函数。
如果(window.XMLHttpRequest){ objHttp = new window.XMLHttpRequest(); netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); }
strEnvelope = '<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>' + ' <HelloWorld xmlns="http://tempuri.org/">' + ' <Dummy xsi:type="xsd:string">Hello</Dummy>'+ ' </HelloWorld>'+ '</soap:Body>' + '</soap:Envelope>' ;
var szUrl; szUrl = 'http://kamadhenu/Quoteme/GetCategories.asmx?op=HelloWorld'; objHttp.onreadystatechange = HandleResponse;
我正在使用JavaScript和HTML来访问Web服务。
任何帮助都将非常感激。
代码:
HTML代码示例已被省略。这是调用Web服务的HTML代码。在页面加载时,会运行一个名为"GetDataFrmWS()"的JavaScript函数。它定义了两个全局变量:objHttp和objXmlDoc,并调用另一个名为"getDataFromWS()"的函数。
}
从英语翻译成中文:function getDataFromWS() { if(window.ActiveXObject) { try { objHttp = new ActiveXObject('Msxml2.XMLHTTP');
}
catch (ex)
{
objHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
如果(window.XMLHttpRequest){ objHttp = new window.XMLHttpRequest(); netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); }
strEnvelope = '<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>' + ' <HelloWorld xmlns="http://tempuri.org/">' + ' <Dummy xsi:type="xsd:string">Hello</Dummy>'+ ' </HelloWorld>'+ '</soap:Body>' + '</soap:Envelope>' ;
var szUrl; szUrl = 'http://kamadhenu/Quoteme/GetCategories.asmx?op=HelloWorld'; objHttp.onreadystatechange = HandleResponse;
objHttp.open('POST', szUrl, true); objHttp.setRequestHeader('Content-Type', 'text/xml'); objHttp.setRequestHeader('SOAPAction','http://tempuri.org/HelloWorld'); objHttp.send(strEnvelope);
这段代码是使用 JavaScript 发送 SOAP 请求的示例。其中,'POST' 表示使用 POST 方法发送请求;szUrl 是目标 URL;'Content-Type' 和 'SOAPAction' 分别设置 HTTP 请求头中的 Content-Type 和 SOAPAction 属性;strEnvelope 是包含 SOAP 消息的 XML 字符串。}
函数 HandleResponse() { 如果 (objHttp.readyState == 4) {
如果(window.ActiveXObject){ objXmlDoc = new ActiveXObject("Microsoft.XMLDOM"); objXmlDoc.async="false"; objXmlDoc.loadXML(objHttp.responseText); var nodeSelect = objXmlDoc.getElementsByTagName("Menu1").item(0); var Menu2=objXmlDoc.getElementsByTagName("Menu2").item(0); document.getElementById('DisplayData').innerHTML=nodeSelect.text; document.getElementById('Menu2').innerHTML=Menu2.text; } else { var Text=objHttp.responseText; var parser=new DOMParser(); objXmlDoc = parser.parseFromString(Text,'text/xml'); var Value=objXmlDoc.documentElement.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].nodeValue; var Menu2=objXmlDoc.documentElement.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[1].childNodes[0].nodeValue; var Menu3=objXmlDoc.documentElement.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[1].childNodes[1].nodeValue; document.getElementById('DisplayData').innerHTML=Value; document.getElementById('Menu2').innerHTML=Menu2; document.getElementById('Menu2').innerHTML+=Menu3; }}
°