Ajax调用Webservice和后台方法

Linux音频调试实战:ALSA架构与tinymix工具的高级应用技巧 本文深入探讨了Linux音频调试的核心技术,重点解析了ALSA架构下音频信号的路由与混合机制。通过介绍轻量级命令行工具tinymix的高级应用技巧,指导开发者如何精准排查无声、音量异常、多路音频共存等复杂问题,并分享编写自动化测试脚本以提升嵌入式及智能设备音频开发效率的实战方法 阅读详情

本次课程内容包括
    • 客户端访问WebService基础
    • 客户端访问PageMethod基础
    • 错误处理
    • 复杂数据类型使用基础
    • 客户端代理使用细节

收听本次课程需具备的条件
    • 了解.NET Framework开发
    • 熟悉JavaScript开发(应知道怎么调用方法,回调函数的概念

一、服务器端释放WebService方法
    • 编写一个普通的ASP.NET WebService
    • 为WebService类添加自定义属性标记
        – ScriptServiceAttribute
    • 释放WebService方法
        – 访问级别为public(首先基本public权限的方法
        – 使用WebMethodAttribute进行标记
    • 为页面中的ScriptManager(Proxy)引入asmx文件

二、客户端访问WebService
    • [Namespaces.]ClassName.MethodName (命名空间 -> 类 -> 方法
    • 依次传入参数
    • 传入一个方法做为成功后的回调函数
    • 即使没有返回值也会调用回调函数(因为它只是通知你事件已经处理完毕)

DEMO 1客户端访问WebService基础

WebServiceFoundation.asmx

 

<%@ WebService Language="C#" Class="Sample.WebServiceFoundation" %>

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;

namespace Sample
{
    [WebService(Namespace 
= "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1)]
    [ScriptService]   
//要释放时此处必须标写
    public class WebServiceFoundation : System.Web.Services.WebService //继承WebService类
    
{
        [WebMethod]
        
public int GetRandom()
        
{
            
return new Random(DateTime.Now.Millisecond).Next();
        }


        [WebMethod]
        
public int GetRangeRandom(int minValue, int maxValue)
        
//在一个区间获得一个随机数
            
return new Random(DateTime.Now.Millisecond).Next(minValue, maxValue);
        }

    }

}

 

1_WebServiceFoundation.aspx

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="1_WebServiceFoundation.aspx.cs" Inherits="_1_WebServiceFoundation" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>Untitled Page</title>
</head>
<body>
    
<form id="form1" runat="server">
        
<asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Debug">
            
<Services>
                
<asp:ServiceReference Path="WebServiceFoundation.asmx" InlineScript="true" /> //InlineScript 默认为false
            </Services>
        
</asp:ScriptManager>
        
        
<input type="button" value="Get Random" onclick="getRandom()" />
        
<input type="button" value="Get Range Random" onclick="getRandom(50, 100)" />
        
        
<script language="javascript" type="text/javascript">
            function getRandom(minValue, maxValue)
            
{ //客户端提供一个类似重载的功能
                
if (arguments.length != 2)
                
{
                    Sample.WebServiceFoundation.GetRandom(getRandomSucceeded);
                }

                
else
                
{
                    Sample.WebServiceFoundation.GetRangeRandom(minValue, maxValue, getRandomSucceeded);
                }

            }

            
            function getRandomSucceeded(result)
            
{
                alert(result);
            }

        
</script>
    
</form>
</body>
</html>

arguments:在JavaScript方法被调用时,都会初始化一个arguments这么一个对象,可当作一个数组类使用,但实际上是一个object,存放的就是这个方法调用时实际传入的参数

三、客户端访问PageMethod
    • 服务器端
        – 只能在aspx页面中定义
        – 只能是公开静态方法(static,无法在方法中访问页面控件
        – 使用WebMethodAttribute标记
        – ScriptManager的EnablePageMethods属性设为true (EnablePageMethods默认为false
    • 客户端
        – 通过PageMethods.MethodName访问

DEMO 2 客户端访问PageMethods基础

2_PageMethods.aspx

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="2_PageMethods.aspx.cs" Inherits="_2_PageMethods" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>Untitled Page</title>
</head>
<body>
    
<form id="form1" runat="server">
        
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
        
        
<input type="button" value="Get Current Time" onclick="getCurrentTime()" />
    
        
<script language="javascript" type="text/javascript">
            function getCurrentTime()
            
{
                PageMethods.GetCurrentTime(getCurrentTimeSucceeded);
            }

            
            function getCurrentTimeSucceeded(result)
            
{
                alert(result);
            }

        
</script>
    
</form>
</body>
</html>

 

2_PageMethods.aspx.cs 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.Services;

public partial class _2_PageMethods : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{

    }


    [WebMethod]
    
public static DateTime GetCurrentTime()
    
{
        
return DateTime.UtcNow; //得到一个UTC时间
    }

}

 

运行结果:

当点击button时将 弹出

 Mon May 14 15:11:57 UTC+0800 2007

四、错误处理
    • 调用时可以提供一个额外的错误回调函数
    • 包括超时和服务器端抛出的异常
    • 超时只能设置在WebService级别
        – 或者设置在PageMethods对象上
        – 无法在每个Method Call时指定(只能在Page中设定
    • Sys.Net.WebServiceError (是个类)
        – timedout、message、exceptionType、stackTrace属性
只有timeout为布尔型,其他都为字符型

 DEMO 3 错误处理

ErrorHandling.asmx

 

<%@ WebService Language="C#" Class="ErrorHandling" %>

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
using System.Threading;

[WebService(Namespace 
= "http://tempuri.org/")]
[WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class ErrorHandling  : System.Web.Services.WebService
{
    [WebMethod]
    
public int GetDivision(int a, int b)
    
{
        
return a / b;   //当a b为浮点数时,b为0时,不返回错误,而是返回一个无穷大的数
    }


    [WebMethod]
    
public int Timeout()
    
{
        Thread.Sleep(
5000);
        
return 0;
    }

}


 

3_ErrorHandling.aspx

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="3_ErrorHandling.aspx.cs" Inherits="_3_ErrorHandling" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>Untitled Page</title>
</head>
<body>
    
<form id="form1" runat="server">
        
<asp:ScriptManager ID="ScriptManager1" runat="server">
            
<Services>
                
<asp:ServiceReference Path="ErrorHandling.asmx" />
            
</Services>
        
</asp:ScriptManager>
        
        
<input type="button" value="getDivision" onclick="getDivision(5, 0)" />
        
<input type="button" value="timeout" onclick="timeout()" />
        
        
<script language="javascript" type="text/javascript">
            function getDivision(a, b)
            
{
                ErrorHandling.GetDivision(a, b, 
null, failedCallback);
                                                                                     
//(a b)为传入的参数,null为正确运行以后回调处理的的方法名,此处为空,表示不处理。
                                                                                    
//failedCallback为出错时处理的方法名
            }

            
            function timeout()
            
{
                ErrorHandling.set_timeout(
2000); //当不设置超时时间时,将不作任何处理
                ErrorHandling.Timeout(
null, failedCallback);
            }

            
            function failedCallback(error)
            
{
                var message 
= String.format(
                    
"Timeout: {0} Message: {1} ExceptionType: {2} StackTrace: {3}",
                    error.get_timedOut(),
                    error.get_message(),
                    error.get_exceptionType(),
                    error.get_stackTrace());
            
                alert(message);
            }

        
</script>
    
</form>
</body>
</html>

【ComfyUI专栏】ComfyUI 数字人方案-ComfyUI-EchoMimic EchoMimic是一个基于图片语音的数字人生成方案,通过ComfyUI节点实现。该方案安装简单,需下载特定模型文件(Unet、AudioProcessorVAE)并保存本地。相比其他数字人生成方案,其节点操作更简便,支持多种Pose姿态选择,并能结合视频内容进行姿态同步,通过音频同步口型实现动态内容创建。生成的数字人效果直观,适用于快速创建个性化数字形象。 阅读详情

相关推荐

ajax异步调用webservice实例

网上有,但是只是介绍,没有现成的代码,现在我做了一个最简单的web服务,在客户端运用AJAX技术进行了调用,测试成功!

Ajax调用webservice

原文出处:http://blog.csdn.net/vs_sundaylove/article/details/6586113 一些感悟:  最近工作一直都很忙。很久没有更新自己的博客了。有很多东西要写。也只能慢慢写。真正能讲出来的东西,才能叫做真正掌握了吧。 我很喜欢一句话:“纸上学来终觉浅,绝知此事要躬行”。所以,在工作之余,自己做一些Dome并且测试通过,才放到网上来,要不就是对知识的不...

Sayesan的专栏 4131

VMware Paravirtual RDMA for High Performance Computing.pdf

VMware Paravirtual RDMA for High Performance Computing.pdf 高清完整版

Ajax调用Webservice接口实现单条数据表回传

前后端分离!实现Ajax调用Webservice接口,回传单条数据或表数据的实例

qq_50431202的博客 1199

AJAX学习摘记——客户端访问WebService(上)

客户端访问WebService(上)基本使用方式赵劼 MSDN特邀讲师 jeffz@live.com本次课程内容包括    • 客户端访问WebService基础    • 客户端访问PageMethod基础    • 错误处理    • 复杂数据类型使用基础    • 客户端代理使用细节收听本次课程需具备的条件    • 了解.NET Framework开发    • 熟

老卡的专栏 1834

ajax调用webservice

常规请求基本格式 1 [WebMethod] 2 public string SayHello(string name) 3 { 4 return "Hello " + name; 5 } 1 $.ajax({ 2 url: ...

weixin_30858241的博客 315

ajax调用远程webservice,ajax跨域请求调用webservice接口

最近忽然想学习webservice,一直不知道如何跨域调用调用。若是都在同一个项目,相信你们都知道了?特此整理一下关键点,权当学习。javascript1.WebService 接口编写。这里不在赘述。html步骤:新建web项目=》添加web service=》编写方法接口=》而后发布。java关键如何让外部Ajax 调用。web首先,配置WebService 项目配置文件(web.config...

weixin_29229055的博客 1648

[JQuery]- 利用jquery的ajax调用后台WebService公共方法网页的静态方法

ajax 的运行原理大家都很清楚,这里我们可以利用jquery里面的 $.ajax() 方法后台webservice公共方法网页的后台静态方法进行调用。 关键凑是一个方法 1. 调用后台的无参数方法   1.1. 调用webservice 的公共方法     a. 首先添加一个webservice 文件 在我们的项目里,需要注意的是在WebService.asmx 后台cs文件里需...

weixin_34275734的博客 134

转:Ajax调用Webservice后台方法

本次课程内容包括 • 客户端访问WebService基础 • 客户端访问PageMethod基础 • 错误处理 • 复杂数据类型使用基础 • 客户端代理使用细节 收听本次课程需具备的条件 • 了解.NET Framework开发 • 熟悉JavaScript开发(应知道怎么调用方法,回调函数的概念) 一、服务器端释放WebService方法...

weixin_33697898的博客 90

ajax如何调用soap,Ajax调用含有SoapHeader的webservice方法

&period;net 在不同情况下调用带soapheader的webservice的方式国庆长假到了,本想出去玩玩,无奈自己屌丝一枚,啥都没有,只能自己宅在家里思考思考人生.不过人生还是过于复杂,一时间也想不出个所以然,只能是整理一下在工作中遇到的一些小问题,首先是关于带soaphead ...C&num;&sol;PHP调用有SoapHeader的WebService...

weixin_42611177的博客 506

webservice调用

1.后台调用.net webservice,只需要引用生成一个代理类即可。2.前台调用.net webservice使用jquery: // $.ajax({ // url: "http://localhost:7916/webservicetest.asmx/HelloWorld",...

dongcheng9436的博客 92

ajax调用服务函数

一、页面方式 Page Method 方式        如果不想独立创建Web Service,而只是希望能够调用页面上的一些方法,那么可以采用Page Method的的方法。同样的我们添加一个页面PageMethodDemo.aspx,增加一些JavaScript一个后台方法,注意这个方法必须是静态方法,代码如下: function PageMethodCall(

yangtang_newton的专栏 614

VB.Net环境 Js调用后台方法获取数据

最近接触一个VB.Net的项目,在JS 通过后台方法获取数据库数据时 为了方便快捷,就直接将后台方法写在了对应页码的.VB文件里,此时使用 $.post 时,只能进到 后台的Page_Load中,不会进入到目标方法里。此文简小结了一下 JS 调用 WS, 一般处理程序 直接调用 后台方法的用法,现将可行的方法记录如下: 调用WS。 创建一个后缀名是.asmx的文件,把方法写到...

一叶君 1785

WebService培训教程

其它调用WebService的方式 1). Ajax调用webService 跨域请求问题: 1. 什么是跨域请求? 1. sina.com--=-&gt;baidu.com/xxx.jsp 2. localhost----à192.168.42.165 2. 解决ajax跨域请求webservice的问题? 在客户端应用中使用java编码去...

尚硅谷铁杆粉丝的博客 174

ajax web服务调用无效 参数值,json调用web服务,报错,无参数值!

前台:ShowDetail("英伦学院派马夹");function ShowDetail(productId) {// make an ajax call to the web service to get Car detail$.ajax({type: "GET",contentType: "application/json; charset=utf-8",url: "ProductServic...

weixin_32521765的博客 645

ajax 跨域 webservice,Ajax请求WebService跨域问题的解决方案

Ajax请求WebService跨域问题的解决方案1、背景用Jquery中Ajax方式在asp.net开发环境中WebService接口的调用2、出现的问题原因分析:浏览器同源策略的影响(即JavaScript或Cookie只能访问同域下的内容);3、解决方案:(1) JSONP:只支持GET方式(2) CROS:跨域资源共享以下为CROS解决方案:a.WebService接口加上响应头信息:b...

weixin_35098081的博客 1051

webservices与AJAX

这两个东西的确有许多相同之处1.两个都使用xml技术实现,2.两个都使用http协议.3.两个都实现不同平台不同开发语言间的数据交换但两又有许多不同1.webservices是服务端技术,主要在后台为各种程序提供服务,使用原有的soap(简单对象访问协议),主要解决的问题是提供一种理想的单位或机构间商业数据安全交换。2.ajax则是客户端技术,它使用已经广泛使用的xmlhttp技术,它

JavaK的专栏 1361

Ajax 调用 WebService 简单例子

XMLHttpRequest对象的属性: onreadystatechange 指定当readyState属性改变时的事件处理 readystate 返回当前请求的状态 responseBody 以unsigned byte数组形式返回 responseStream 以Ado Stream对象的形式返回 responseText 作为字符串返回 responseXML 将响应的信息格式...

iteye_3992的博客 166

ajax调用mysql数据_ajax调用WebService实现数据库操作

首先说下测试环境思路:前端收集数据转换成json格式传输到后端,处理并存入数据库1.数据库操作:[WebMethod]public string InsertPoint(stringdata){//解决跨域问题//Context.Response.AddHeader("Access-Control-Allow-Origin", "*");string database = "Data Sourc...

weixin_30066779的博客 272

$.ajax 调用webservice,异步调用ajax webservice

异步请求返回的内容格式:文本,xml,json。可以返回简单的对象异步调用使用webservice的异步调用:(1)返回文本$(function (){$("#Button1").click(function(){$.ajax({contentType:"application/json",type:"POST",url:"webService.asmx/Select",---调用webserv...

weixin_30022923的博客 300
上一篇: Asp.net调用webservice
下一篇: ASP.NET MVC案例教程(七)
wickiup
博客等级 码龄19年 4粉丝 6原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值