<script language="javascript" type="text/javascript">
var xmlhttp = new XMLHttpRequest();
var value=new Array();
var variable=new Array();
function handleStateChange() {
if(xmlhttp.readyState==4) {
if(xmlhttp.status==200) {
var textvalue = xmlhttp.responseText;
var xmlobj = phraseXml(textvalue);
var jsonString = xmlobj.getElementsByTagName("result")[0].firstChild.nodeValue;
alert(jsonString);
} else if(xmlhttp.status==404) {
}
} else if(xmlhttp.readyState==0) {
} else if(xmlhttp.readyState==1) {
} else if(xmlhttp.readyState==2) {
} else if(xmlhttp.readyState==3) {
} else {
}
}
function phraseXml(xmlString)
{
var xmlDoc=null;
//判斷瀏覽器的類型
//支持IE瀏覽器
if(!window.DOMParser && window.ActiveXObject){ //window.DOMParser 判斷是否是非ie瀏覽器
var xmlDomVersions = ['MSXML.2.DOMDocument.6.0','MSXML.2.DOMDocument.3.0','Microsoft.XMLDOM'];
for (var i=0; i<xmlDomVersions.length; i++) {
try {
xmlDoc = new ActiveXObject(xmlDomVersions[i]);
xmlDoc.async = false;
xmlDoc.loadXML(xmlString); //loadXML方法載入xml字符串
break;
} catch(e) {
}
}
} else if (window.DOMParser && document.implementation && document.implementation.createDocument) {
//支持Mozilla瀏覽器
try{
/* DOMParser 對象解析 XML 文本並返回一個 XML Document 對象。
* 要使用 DOMParser,使用不帶參數的構造函數來實例化它,然後調用其 parseFromString() 方法
* parseFromString(text, contentType) 參數text:要解析的 XML 標記 參數contentType文本的內容類型
* 可能是 "text/xml" 、"application/xml" 或 "application/xhtml+xml" 中的一個。注意,不支持 "text/html"。
*/
domParser = new DOMParser();
xmlDoc = domParser.parseFromString(xmlString, 'text/xml');
} catch(e) {
}
} else {
return null;
}
return xmlDoc;
}
//Get Request Data's length
function getlen(str)
{
var bytesCount=0;
for (var i = 0; i < str.length; i++) {
var c = str.charAt(i);
if (/^[\u0000-\u00ff]$/.test(c)) { //匹配雙字節
bytesCount += 1;
} else {
bytesCount += 2;
}
}
return bytesCount;
}
function phraseJson(msg)
{
var obj = msg; // 以文本方式接收
var objJson = obj
}
//Create XMLHttpRequest Object
function createXMLHttpRequest()
{
if (window.ActiveXObject) {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
} else if (window.XMLHttpRequst) {
xmlhttp=new XMLHttpRequest();
}
}
function RequestByPost(method,variable,value,url,_Namespace)
{
createXMLHttpRequest();
var data;
data = '<?xml version="1.0" encoding="utf-8"?>';
data = data + '<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/">';
data = data + '<soap:Body>';
data = data + '<'+method+' xmlns="'+_Namespace+'">';
for(var i=0;i<variable.length;i++)
{
data = data + '<'+variable[i]+'>'+value[i]+'</'+variable[i]+'>';
}
alert(data);
data = data + '</'+method+'>';
data = data + '</soap:Body>';
data = data + '</soap:Envelope>';
xmlhttp.onreadystatechange=handleStateChange;
xmlhttp.Open("POST",url, true);
xmlhttp.SetRequestHeader ("Content-Type","text/xml; charset=utf-8");//application/json text/xml
xmlhttp.SetRequestHeader ("Content-Length",getlen(data));
xmlhttp.SetRequestHeader ("SOAPAction",_Namespace+method);
xmlhttp.Send(data);
}
function Button1_onclick() {
RequestByPost("GetTodayData",
new Array("equipid","valuetype"),
new Array(1,1),
"http://localhost:8080/GetTodayData",
"urn:scada");
}
</script>
<html>
<form>
<table border="1">
<tr>
<td>
<input type="button" value="獲取數據" onclick=Button1_onclick()>
</td>
</tr>
</table>
</form>
</html>
JavaScript調用webservice
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.