JS调用Webservice简单例子

时间:2024-04-16 14:43:45

首先创一个WEB项目,直接使用默认创建的那个aspx页面编码

aspx页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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></title>

    <script type="text/javascript">
        //下面2个方法实现了Ajax+WebService的无刷新 HandleStateChange为回调函数  执行完HelloWorld返回的值将赋给HandleStateChange的参数reusltText  这里有点难理解  习惯就好
        function getStr() {
            JSWebService.HelloWorld(HandleStateChange);
        }

        function HandleStateChange(reusltText) {
            $get("result").innerHTML = reusltText;
        }
 
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input type="button" value="JS调用WebService" onclick="getStr()" />
        <asp:ScriptManager ID="ScriptManager1" runat="server">
            <Services>
                <asp:ServiceReference Path="~/JSWebService.asmx" />
            </Services>
        </asp:ScriptManager>
        &nbsp;<div id="result">
        </div>
    </div>
    </form>
</body>
</html>

接着创建webservice

JSWebService.cs代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

/// <summary>
///JSWebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class JSWebService : System.Web.Services.WebService {

    public JSWebService () {

        //如果使用设计的组件,请取消注释以下行
        //InitializeComponent();
    }

    [WebMethod]
    public string HelloWorld() {
        return "Hello World";
    }   
}

 以上就是完整的代码。其中要注意的有以下几点:

1、javascript中的2个方法的意思要懂,就是实现无刷新

2、asp:ScriptManager的配置要懂,其中Path属性的值就是js要掉用的webservice类

3、webservice类中[System.Web.Script.Services.ScriptService]的注释要取消,为了让JS能调用到该类