谁能提供一个客户端JavaScript用HTTP-POST,HTTP-GET,SOAP调用web服务,接受返回数据的例子?

nakey2008 2005-02-02 05:13:34
假设web服务为Service1,它定义个一个方法:
[WebMethod]
public string GetData(string PropertyName,string PropertyValue )
{
return ...
}
如何在客户端用JS分别用POST,GET,SOAP调用这个WEB服务,接受返回的数据并显示?
...全文
545 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
accpedu 2005-09-09
  • 打赏
  • 举报
回复
好东东
Jack123 2005-08-28
  • 打赏
  • 举报
回复
wonderful!!
armi100 2005-08-16
  • 打赏
  • 举报
回复
up
蓝色水 2005-07-25
  • 打赏
  • 举报
回复
我的useService实例不了,有htc已经放在这个项目中了,请问楼主为社么
dengyao9977 2005-02-28
  • 打赏
  • 举报
回复
ding
hlost2 2005-02-28
  • 打赏
  • 举报
回复
up++
haoco 2005-02-21
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
haoco 2005-02-03
  • 打赏
  • 举报
回复
up
Tomgus 2005-02-02
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/webservice/overview.asp

http://www.codeproject.com/cs/webservices/webservicecallback.asp?target=web%7Cservice

http://www.cnblogs.com/daview/archive/2004/05/06/8373.aspx
Tomgus 2005-02-02
  • 打赏
  • 举报
回复
以下代码实现了在客户端用java script调用Web Service,通过对Web Service:TimeService中GetTime()方法的调用,在客户端显示服务器当前时间,并且以1秒为间隔自动刷新。

TimeService: GetTime()

//Return time on server
[WebMethod]
public string GetTime()
{
return DateTime.Now.ToString();
}

客户端显示的页面WebForm1:


<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script language="javascript">
function timer(){
service.useService("http://localhost/TimeWebService/TimeService.asmx?wsdl","TimeService");
service.TimeService.callService(callback,"GetTime");
setTimeout("timer()",1000);

}

function callback(res){
if (!res.error)
time.innerText=res.value
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout" onload="timer()">
<div id="service" style="BEHAVIOR:url(webservice.htc)"></div>
<form id="Form1" method="post" runat="server">
<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 8px; WIDTH: 440px; POSITION: absolute; TOP: 8px; HEIGHT: 50px"
cellSpacing="1" cellPadding="1" width="440" border="0">
<TR>
<TD style="WIDTH: 83px">
<asp:Label id="Label1" runat="server">Current time:</asp:Label></TD>
<TD><span id="time"></span></TD>
</TR>

</TABLE>
</form>
</body>
</HTML>


其中引入一个名为webservice.htc的文件,它包含了使用java script来调用Web Service的两个方法:useService和callService。wbservice.htc可以通过以下地址下载:
http://msdn.microsoft.com/workshop/author/webservice/webservice.htc

其实,web service本质上就是http,xml,所以完全可以自己来实现调用Web Service,有兴趣的话可以参考一下webservice.htc中的_invoke()函数:

var szAction = oM.soapAction;
if (szAction != null && szAction.length > 0)
oXmlHttp.xmlHttp.setRequestHeader("SOAPAction", '"'+szAction+'"');
oXmlHttp.xmlHttp.setRequestHeader("Content-Type", "text/xml");
var sNS = ' xmlns=""';
for (var ns in oS.ns)
{
var nsuri = oS.ns[ns];
if (ns == "" || nsuri == "")
continue;
sNS += " xmlns:" + ns + '="' + nsuri + '"';
}
var szHeader = encodeHeader(oS, oM, oCall);
var szPayload = "<?xml version='1.0'?>\n<SOAP-ENV:Envelope"
+ (oM.es == null ? '' : (' SOAP-ENV:encodingStyle="' + oM.es + '"'))
+ sNS + ">\n"
+ szHeader
+ '<SOAP-ENV:Body>'
+ szParams + "</SOAP-ENV:Body>\n"
+ "</SOAP-ENV:Envelope>\n";
if (co.async)
{
oCall.oXmlHttp = oXmlHttp;
oXmlHttp.xmlHttp.onreadystatechange = function() {getResult(oCall);};
try
{
oXmlHttp.xmlHttp.send(szPayload);
}
catch(e)
{
return postError(oCall, 5);
}
return oCall.id;
}
try
{
oXmlHttp.xmlHttp.send(szPayload);
}
catch(e)
{
return returnError(oCall, 5);
}
if (oXmlHttp.xmlHttp.responseXML.parseError.errorCode != 0)
{
_errUnknownS.raw = oXmlHttp.xmlHttp.responseText;
return returnError(oCall, 4);
}
var r;
try
{
r = processResult(oCall, oXmlHttp.xmlHttp.responseXML.documentElement);
}
catch (e)
{
return returnError(oCall, 7);
}
return r;
nakey2008 2005-02-02
  • 打赏
  • 举报
回复
关键是不用XMLHTTP
jackie615 2005-02-02
  • 打赏
  • 举报
回复
up
finalarrow 2005-02-02
  • 打赏
  • 举报
回复
前面有人问过的啊?
你构造xml字符串,用xmlhttp发送,接收回来的就是了。

12,165

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧