社区
Web Services
帖子详情
谁能提供一个客户端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服务,接受返回的数据并显示?
...全文
556
14
打赏
收藏
谁能提供一个客户端JavaScript用HTTP-POST,HTTP-GET,SOAP调用web服务,接受返回数据的例子?
假设web服务为Service1,它定义个一个方法: [WebMethod] public string GetData(string PropertyName,string PropertyValue ) { return ... } 如何在客户端用JS分别用POST,GET,SOAP调用这个WEB服务,接受返回的数据并显示?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
专注编程优化20年
2005-02-03
打赏
举报
回复
顶
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发送,接收回来的就是了。
Ajax
调用
SOAP
-Web示例
Ajax
调用
SOAP
Web示例
Ajax
调用
webservices
最简单的Ajax
调用
webservices
跨域WebService请求-Nginx_
SOAP
服务_Ajax
客户端
.docx
1 目标:将WebService和
客户端
部署在不同的服务器,由
客户端
请求服务。 2 原理:Nginx将不同域的
HTTP
服务、网站放入统一的域中,规避跨域问题。 不同的服务器位置于不同的域。
JavaScript
安全性不允许
POST
的跨域请求(GET可以与服务器配合使用JSONP,有些勉强)。
SOAP
只能使用
POST
请求,所以无法直接跨域。一般的解决方案是使用服务器代理(由同域服务器跨域请求后
返回
),但导致过于复杂(参见:Java-webservice-CXF-
SOAP
服务.docx服务器代理)。 如果服务器能够操作,也可以使用JSONP允许跨域请求。
JS
调用
Web服务
完整示例
JS
调用
Web服务
完整示例,非常适合新手参考
JavaScript
调用
WebService实例总结
JavaScript
调用
WebService实例总结
Web Services
12,165
社区成员
16,324
社区内容
发帖
与我相关
我的任务
Web Services
.NET技术 Web Services
复制链接
扫一扫
分享
社区描述
.NET技术 Web Services
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章