我正在尝试访问 XMLHTTPRequest.open 方法我什至包括 netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");

但仍然无法正常工作。

我正在使用 javascript 和 HTML 来访问 WebService。

任何帮助都会很棒

代码



<html> <Head> <Title>Calling A WebService from HTML </Title> </Head>

<Body onload='GetDataFrmWS()'> <form name="Form1" id="Form1" runat="server" method="post"> <div id="DisplayData" > </div> <div id="Menu2"></div>

</form>

<script language='javascript'>

var objHttp; var objXmlDoc;

function GetDataFrmWS() { alert('I M Here'); var func = getDataFromWS();

}

function getDataFromWS() {

if(window.ActiveXObject) { try { objHttp = new ActiveXObject('Msxml2.XMLHTTP');

    }
 catch (ex)
 {
  objHttp = new ActiveXObject('Microsoft.XMLHTTP');
 }

}
否则如果(window.XMLHttpRequest)
{
objHttp = 新窗口.XMLHttpRequest();
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
}

strEnvelope = '' ;

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);

}

函数句柄响应()
{
如果(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;
}
别的
{
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;
}
}

}



°

最佳答案

XML HTTPRequest 的浏览器独立代码

我使用以下代码创建一个 XML 对象。它旨在处理所有浏览器(尤其是 IE 和非 IE)

/* Function to create an XMLHTTP object for all browsers */
function getXMLHTTPObject(){
    var xmlHttp;
    try{
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    } catch (e){
        // Internet Explorer
        try{
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }catch (e){
            try{
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }catch (e){
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }
    return xmlHttp;
}
/* End Function */

附言您在问题中的代码不可读。请格式化它

关于ajax - 使用 XMLHttpRequest.Open 跨浏览器访问时权限被拒绝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/355185/

10-11 13:19