您的位置:首页 > 编程语言 > ASP

asp.net ajax1.0 使用js调用webSerivce

2007-08-03 21:42 477 查看
看了一个使用asp.net ajax1.0中使用js调用webserivce的方法。感觉很简单。可能以后会用到。

使用原来默认的web.config因为其中有这样的代码段:

<system.web>
<httpHandlers>
<remove verb="*" path="*.asmx"/> <add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory" validate="false"/>
</httpHandlers>
<system.web>

然后新建一个webserivce页面。这都没什么说的拉。其中命名空间添加这个:

using System.Web.Script.Services;

还有对类使用这样的属性[ScriptService]。添加在类名前面;其他方法都一样添加[webmethod]就ok。

新建立一个aspx页面。添加这个

<asp:ScriptManager ID="SM1" runat=server>
<Services>
<asp:ServiceReference Path="Service.asmx" />
</Services>
</asp:ScriptManager>。

然后在页面直接写js代码

<script language=javascript>
function aa()
{
Service.HelloWorld2(document.getElementById('txt').value,callback);//直接类名.方法和方法里面的参数。我的helloWorld2里面只有一个参数。后面的那个callback是异步回调的方法。就是异步来实现方法。很像ajaxpro.dll.和ajax.dll啊
}
function callback(res)
{
document.getElementById('a').innerHTML = res;
}
</script>

再看看异常处理。

上面的方法。类名.方法名(参数,异步回调方法)其实我看目前有两个异步回调方法。一个是执行成功的方法。一个是执行错误的方法。如果只写一个方法的话默认就是执行成功的方法。所以我们前面的那个callback方法只有执行成功的方法。可以在callback后面再写一个执行失败的方法faildCB

代码这样。看了就明白

function faildCB(error)
{

var stackTrace = error.get_stackTrace();
var message = error.get_message();
var statusCode = error.get_statusCode();
var exceptionType = error.get_exceptionType();
var timedout = error.get_timedOut();

// 把错误信息输出来

var RsltElem = document.getElementById("divD");
RsltElem.innerHTML =
"Stack Trace: " + stackTrace + "<br/>" +
"Service Error: " + message + "<br/>" +
"Status Code: " + statusCode + "<br/>" +
"Exception Type: " + exceptionType + "<br/>" +
"Timedout: " + timedout;

}

本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐