js 里 用XML httpRequest 调用 Web Service

 

用js 调用 web service   今天进行了一下整理 方便以后应用

要注意web service 的设置 

//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。   
[System.Web.Script.Services.ScriptService]    一定要把这句话的默认注释去掉 否则js 无法调用

Web service 设置
   /// <summary>
    ///判断用户登录的方法
    /// </summary>
    /// <param name="userName">用户名</param>
    /// <param name="userPwd">密码</param>
    /// <returns>成功返回true 否则 false </returns>
    [WebMethod]
    public bool IsUerLogin(string userName,string userPwd)
    {
        //这个 说我自己后台判断 用户名的方法  
        BLL.UserBLL ub = new BLL.UserBLL();
        Model.User us = new Model.User(userName, ub.GetMD5String(userPwd));

        string ret = ub.UerLogin(us);
        if (ret != "1")
            return false;
        return true;
    }
前端 js 代码
/// <reference path="jquery-1.4.1-vsdoc.js" />

var xmlHttp;
var controlName;
// methodName  执行WebService 方法的名称
//pargm 传递的 参数值
//c_name 用来显示 返回的文本 的 控件ID
function GetWebSevice(methodName, pargm, c_name)
{

        var strUrl = "WebService.asmx" + "/" + methodName;
        controlName = c_name;

        // 创建 xmlHttpRequest()对象
        try
        {
                xmlHttp = new window.XMLHttpRequest();
        }
        catch (e)
        {
                xmlHttp = new window.ActiveXObject("Microsoft.XMLHTTP");
        }

        //为 readystate 状态改变 设置回调函数
        xmlHttp.onreadystatechange = state_change;   //调用回调函数

        xmlHttp.open("POST", strUrl, false);   //打开

        //var  postData= "x=2&y=345"
        //设置发送文件头的信息
        xmlHttp.setRequestHeader("Content-Length", pargm.length);
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");

        //发送参数 
        xmlHttp.send(pargm);

        //处理请求的回调函数
        function state_change()
        {


                /*
                readyState  ==4 表示HTTP 请求已经完成
                status由服务器返回的 HTTP 状态代码,如 200 表示成功,而 
                404 表示 "Not Found" 错误。
                当 readyState 小于 3 的时候读取这一属性会导致一个异常。   
                */
             
                if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
                {
                        document.clear();
                        $("#retControl").attr("innerHTML", xmlHttp.responseText);

                }
        }



}

 

直接调用 GetWebSevice  这个方法传递参数就可以了。

posted @ 2013-03-26 00:21  hzy168  阅读(344)  评论(0编辑  收藏  举报