JS访问web服务
2008-04-27 23:48
183 查看
实现了查看实时天气预报,把下面保存个网页即可。 呵呵~~~~
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script type="text/javascript" src="js/detect.js"></script>
<script type="text/javascript" src="js/stringbuffer.js"></script>
<body>
<script type="text/javascript">...
if (typeof XMLHttpRequest == "undefined" && window.ActiveXObject) ...{
function XMLHttpRequest() ...{
var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
"Microsoft.XMLHTTP"];
for (var i=0; i < arrSignatures.length; i++) ...{
try ...{
var oRequest = new ActiveXObject(arrSignatures[i]);
return oRequest;
} catch (oError) ...{
}
}
}
}
function test()...{
try
...{
var strUrl="http://www.ayandy.com/Service.asmx";
var oBuffer=new StringBuffer()
oBuffer.append('<?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/"> ');
oBuffer.append('<soap:Body><getWeatherbyCityName xmlns="http://tempuri.org/"> <theCityName>');
oBuffer.append("昆明");
oBuffer.append("</theCityName><theDayFlag>");
oBuffer.append("Today");
oBuffer.append("</theDayFlag></getWeatherbyCityName></soap:Body></soap:Envelope>");
var objXMLHttp = new XMLHttpRequest();
objXMLHttp.open("Post",strUrl, true);
objXMLHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
objXMLHttp.setRequestHeader("SOAPAction", "http://tempuri.org/getWeatherbyCityName");
objXMLHttp.onreadystatechange = function () ...{
if (objXMLHttp.readyState == 4)
...{
if(objXMLHttp.status==200)
...{
fnGetWeather(objXMLHttp.responseText.toString());
}else
...{
return objXMLHttp.statusText ;
}
}
}
objXMLHttp.send(oBuffer.toString());
}
catch(e)...{alert(e.description);}
}
function fnGetWeather(sTheGet)
...{
var reg = /<string>(.*?)</string>/gi;
var arrMatch=sTheGet.match(reg);
var reg4=/<string>(.*)</string>/;
var i;
var strAll=new StringBuffer();
strAll.append("今天:");
for(i=0;i<arrMatch.length-2;i++)
...{
reg4.test(arrMatch[i]);
strAll.append(RegExp.$1);
strAll.append(" ");
}
alert(strAll.toString());
}
alert(test());
</script>
</body>
</html>
总结:
1.js文件最好不要添加中文注释,会有不可控制的错误。
2.用esc.wsf压缩js文件最好只用到第3级,第四级会改变变量名称,但变量有时网页会用到。
3.注意返回值在onreadystatechange事件中,所以最好有个回调函数。
4.js文件包含其它js文件,必须要用函数实现。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script type="text/javascript" src="js/detect.js"></script>
<script type="text/javascript" src="js/stringbuffer.js"></script>
<body>
<script type="text/javascript">...
if (typeof XMLHttpRequest == "undefined" && window.ActiveXObject) ...{
function XMLHttpRequest() ...{
var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
"Microsoft.XMLHTTP"];
for (var i=0; i < arrSignatures.length; i++) ...{
try ...{
var oRequest = new ActiveXObject(arrSignatures[i]);
return oRequest;
} catch (oError) ...{
}
}
}
}
function test()...{
try
...{
var strUrl="http://www.ayandy.com/Service.asmx";
var oBuffer=new StringBuffer()
oBuffer.append('<?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/"> ');
oBuffer.append('<soap:Body><getWeatherbyCityName xmlns="http://tempuri.org/"> <theCityName>');
oBuffer.append("昆明");
oBuffer.append("</theCityName><theDayFlag>");
oBuffer.append("Today");
oBuffer.append("</theDayFlag></getWeatherbyCityName></soap:Body></soap:Envelope>");
var objXMLHttp = new XMLHttpRequest();
objXMLHttp.open("Post",strUrl, true);
objXMLHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
objXMLHttp.setRequestHeader("SOAPAction", "http://tempuri.org/getWeatherbyCityName");
objXMLHttp.onreadystatechange = function () ...{
if (objXMLHttp.readyState == 4)
...{
if(objXMLHttp.status==200)
...{
fnGetWeather(objXMLHttp.responseText.toString());
}else
...{
return objXMLHttp.statusText ;
}
}
}
objXMLHttp.send(oBuffer.toString());
}
catch(e)...{alert(e.description);}
}
function fnGetWeather(sTheGet)
...{
var reg = /<string>(.*?)</string>/gi;
var arrMatch=sTheGet.match(reg);
var reg4=/<string>(.*)</string>/;
var i;
var strAll=new StringBuffer();
strAll.append("今天:");
for(i=0;i<arrMatch.length-2;i++)
...{
reg4.test(arrMatch[i]);
strAll.append(RegExp.$1);
strAll.append(" ");
}
alert(strAll.toString());
}
alert(test());
</script>
</body>
</html>
总结:
1.js文件最好不要添加中文注释,会有不可控制的错误。
2.用esc.wsf压缩js文件最好只用到第3级,第四级会改变变量名称,但变量有时网页会用到。
3.注意返回值在onreadystatechange事件中,所以最好有个回调函数。
4.js文件包含其它js文件,必须要用函数实现。
相关文章推荐
- Dojo AJAX 访问C#Web 服务 并且返回JS 格式的数据
- 为一个 iOS 应用编写一个简单的 Node.js/MongoDB Web 服务
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件(转)
- web服务目录的访问权限的控制
- Web服务数据库访问中间件的实现
- 应用AXIS开始Web服务之旅(soap web services)——使用三种不同的语言访问创建的Web服务,分别是JAVA、VB、VC
- 使用SOAP访问web服务
- RHEL4- WEB服务(十二)用户访问apache服务器认证
- 利用OpenShift托管Node.js Web服务进行微信公众号开发
- 通过Yahoo+Search+API访问Web服务实现自己的搜索引擎
- 浏览器访问web资源的过程(telnet 服务 、 回显设置 XP WIN7)
- Struts2 访问Action和Jsp页面出现的路径问题解决方案之 ---- 为jsp、图片、js、css等获取Web工程的绝对路径的方法
- 【JS】jQuery设置定时器,访问服务器(PHP示例)配合微信、支付宝原生支付,跳转web网页
- js判断web网站是手机端访问的还是PC端访问的
- 在Silverligh中访问Web服务 - 从 Silverlight 访问服务
- 从外网访问VMware虚拟机的Web服务
- 主机访问虚拟机中linux上的web服务
- 使用SOAP访问Web服务
- 关于局域网电脑通过IP地址访问虚拟主机上的PHP WEB服务的问题
- Webservices-2.C#创建web服务,及引用访问、代码访问