topical media & game development
professional-ajax-06-Math-UniversalWebServiceExample.js / js
//Universal Test Harness Example
//handles the request and response
var oXmlHttp = null;
//This function constructs the SOAP request as a string.
function getRequest(sMethod, sOp1, sOp2)
{
var sRequest = "<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/\">\n"
+ "<soap:Body>\n"
+ "<" + sMethod + " xmlns=\"" + SOAP_ACTION_BASE + "\">\n"
+ "<op1>" + sOp1 + "</op1>\n"
+ "<op2>" + sOp2 + "</op2>\n"
+ "</" + sMethod + ">\n"
+ "</soap:Body>\n"
+ "</soap:Envelope>\n";
return sRequest;
}
function performSpecificOperation(sMethod, sOp1, sOp2)
{
oXmlHttp = zXmlHttp.createRequest();
setUIEnabled(false);
var sRequest = getRequest(sMethod, sOp1, sOp2);
var sSoapActionHeader = SOAP_ACTION_BASE + "/" + sMethod;
oXmlHttp.open("POST", SERVICE_URL, true);
oXmlHttp.onreadystatechange = handleResponse;
oXmlHttp.setRequestHeader("SOAPAction", sSoapActionHeader);
oXmlHttp.setRequestHeader("Content-Type", "text/xml");
oXmlHttp.send(sRequest);
document.getElementById("txtRequest").value = sRequest;
}
//This handles the response
function handleResponse()
{
if (oXmlHttp.readyState == 4)
{
setUIEnabled(true);
var oResponseOutput = document.getElementById("txtResponse");
var oResultOutput = document.getElementById("txtResult");
var oXmlResponse = oXmlHttp.responseXML;
var sHeaders = oXmlHttp.getAllResponseHeaders();
if (oXmlHttp.status != 200 || !oXmlResponse.xml)
{
alert("Error accessing Web service.\n"
+ oXmlHttp.statusText
+ "\nSee response pane for further details.");
var sResponse = (oXmlResponse.xml ? oXmlResponse.xml : oXmlResponseText);
oResponseOutput.value = sHeaders + sResponse;
return;
}
oResponseOutput.value = sHeaders + oXmlResponse.xml;
var sResult = oXmlResponse.documentElement.firstChild.firstChild.firstChild.firstChild.data;
oResultOutput.value = sResult;
}
}
(C) Æliens
20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.