我正在调用位于其他主机上的Web服务。 它在IE中运行良好,但不适用于FF,Opera等。 这是我的代码:
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>';
此方法只调用authenticate方法,如果用户abc是有效用户,则返回true / false.1234是abc用户的密码。 请帮忙... 提前谢谢......
我在FF中收到此错误:
XML Parsing Error: no element found Location: moz-nullprincipal:{cb5142f9-33a8-44ca-bc9d-60305ef7cea8} Line Number 1, Column 1:
答案 0 :(得分:1)
如果您希望ajax可以跨浏览器可靠地运行,我建议您使用jQuery。
它将直接消除处理XmlHttpReq的复杂性,为您提供更清晰的语法,并在所有主流浏览器中工作。
首先查看jQuery's ajax API。
您的代码可能与此类似:
$.ajax({
url: "test.html",
context: document.body,
success: function(){
$(this).addClass("done");
}
});