正在学习通过ScriptManager,客户端调用WebService方法,按照网上写的代码。使用的时候点击button,没有任何显示,在浏览器左下脚显示网页上有错误!!
哪位高手帮忙下,代码如下:
客户端:
<asp:ScriptManager ID="ScriptManager1" runat="server" >
<Services>
<asp:ServiceReference Path="http://localhost:81/a/Service.asmx" />
</Services>
</asp:ScriptManager>
<input id="Button1" type="button" value="点击调用WebService" onclick="button_click()" /><br /><script type="text/javascript" language="JavaScript">
function button_click()
{
requestSimpleService = service.HelloWorld(
OnRequestComplete //完成事件
);
return false;
}
function OnRequestComplete(result)
{
alert(result);
}
</script>服务器端:
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService] public class Service : System.Web.Services.WebService
{ [WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
哪位高手帮忙下,代码如下:
客户端:
<asp:ScriptManager ID="ScriptManager1" runat="server" >
<Services>
<asp:ServiceReference Path="http://localhost:81/a/Service.asmx" />
</Services>
</asp:ScriptManager>
<input id="Button1" type="button" value="点击调用WebService" onclick="button_click()" /><br /><script type="text/javascript" language="JavaScript">
function button_click()
{
requestSimpleService = service.HelloWorld(
OnRequestComplete //完成事件
);
return false;
}
function OnRequestComplete(result)
{
alert(result);
}
</script>服务器端:
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService] public class Service : System.Web.Services.WebService
{ [WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
解决方案 »
- 关于显示路径的问题
- Server Error in '/' Application错误
- 求邮件发送的代码
- 后台生成的控件中含有<%=%>的使用求教!
- 来看下-指定的参数已超出有效值的范围。参数名: index (C#)
- 关于ASP。NET与DLL组件的问题,请高手来指点一下
- 在ASP.NET中如何动态改变图片?
- DataGrid删除某一行,取其中某个格的文本内容时出问题
- datagrid怎么实现分页呢?设置什么属性呢?
- 有多少人已报名或准备参加微软广州 TECHED 2002大会?
- JS存取Cookies问题
- 使用者程式碼未處理 System.Configuration.Provider.ProviderException
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="http://localhost/AJAXWebServiceDemo/WebServiceDemo.asmx" />
</Services>
</asp:ScriptManager>
<asp:ServiceReference Path="http://localhost:81/a/Service.asmx" />
=>
<asp:ServiceReference Path="~/Service.asmx" /> ...requestSimpleService = service.HelloWorld(
=>
requestSimpleService = Service.HelloWorld(
有引用的阿<asp:ServiceReference Path="http://localhost:81/a/Service.asmx" />
这个路径是指明你在本地的IIS有个端口为81的,虚拟目录为a里的Service.asmx。如果Service.asmx是项目里的话,改成"~/Service.asmx"吧。
改成大写的Service.HelloWorld()还是没用,Path="http://localhost:81/a/Service.asmx" />是我发布的地址,你介意的Path="~/Service.asmx"是文件夹上一层的,Service.asmx没在上一层文件夹
==
你的这个webservice有设置为虚拟目录么?
1、该Web Service必须也是ASP.NET建立的,且必须标示为ScriptService;
2、受限于XMLHttpRequest不允许跨网域调用的限制,使用者必须调整游览器的安全设定所以最好的方式是自己建一个Web Service,在此Web Service中串接外部的Web Service,这样不公可以调用非ASP.NET所建立的WEb Service,而且不受XMLHttpRequest不能跨网域的限制?书的抄来的。
[WebMethod]
public string HelloWorld() {
localhost.WebService ws = new localhost.WebService();
return ws.HelloWorld(); //调用81端口里的那个
}然后,就不用说了吧?
服务的方法签名也要正确。