java script调用Web Service,

急要,在线等!
jiezhi(風依舊) 于 2004-11-12 14:18:25
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/webservice/overview.asp

http://www.codeproject.com/cs/webservices/webservicecallback.asp?target=web|service

http://www.cnblogs.com/daview/archive/2004/05/06/8373.aspx
chnama(*****) 于 2004-11-12 16:06:48
http://www.tiantiansoft.com/bbs/dispbbs.asp?boardID=40&ID=62626&page=1
Jeff20040819(最爱Delphi,C#——苦练内功中) 于 2004-11-20 8:09:11
学习 接分
litp(天道酬勤) 于 2004-11-22 17:59:46
以下代码实现了在客户端用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" οnlοad="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; 


 
要使用 AJAX 调用 Java Web Service,需要执行以下步骤: 1. 创建一个 Java Web Service,可以使用 JAX-WS 或 Apache Axis 等框架。 2. 在 Web 服务端口上启用 RESTful Web 服务。 3. 在客户端页面中使用 AJAX 发送 HTTP 请求。 4. 在服务端编写代码来处理请求并返回响应。 下面是一个示例代码: Java Web Service: ```java package com.example; import javax.jws.WebMethod; import javax.jws.WebService; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @WebService @Path("/hello") public class HelloService { @WebMethod @GET @Produces(MediaType.TEXT_PLAIN) public String sayHello() { return "Hello, World!"; } } ``` 客户端 HTML 页面: ```html <!DOCTYPE html> <html> <head> <title>AJAX Example</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body> <button id="btn">Say Hello</button> <div id="result"></div> <script> $(document).ready(function() { $("#btn").click(function() { $.ajax({ url: "http://localhost:8080/HelloService/hello", type: "GET", dataType: "text", success: function(response) { $("#result").text(response); }, error: function(xhr, status, error) { $("#result").text("Error: " + error); } }); }); }); </script> </body> </html> ``` 在这个例子中,我们使用 JAX-WS 框架创建了一个简单的 Web 服务,它返回一个字符串 "Hello, World!"。然后,在客户端 HTML 页面中使用 jQuery 发送一个 AJAX 请求,请求这个 Web 服务,并将响应显示在页面上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值