﻿/**
 * @author 张军
 * @include "jquery1.2.1"
 * @include "json.js"
 * @Date: 2007-11-13
 */

/**
 * 使用Soap1.2格式向WebService发送请求
 * @param destUrl web服务的目标地址/方法名，如：WSService/TestService.asmx/TestMultiPerCall
 * @param postdata 参数对象数组，{"header":user,"employee":user2,"end":"xxxx","testBool":true,"testInt":30}
 * @param userCallback 回调方法，该回调方法包含一个参数，是eb服务返回的对象
 */
$.postJOSN=function(destUrl, postdata, userCallback )
{  
    $.ajax({type:"POST",contentType:"application/json; charset=utf-8",url:destUrl,data:postdata.toJSONString(),success:SuccessCallBack,error:ErrorCallBack});
    
    function SuccessCallBack(result)
    {
        userCallback(result.parseJSON());
    }
    
    function ErrorCallBack(Request,ErrorType,ErrorObj)
    {
        var errorObj=Request.responseText.parseJSON();
        var msg=errorObj.ExceptionType+"  "+errorObj.Message+ "\r\n";        
        msg += errorObj.StackTrace;
        alert(msg);
    }
}

/*
调用举例

服务器端方法：
[WebMethod]
public UserInfo[] TestSer(UserInfo header, UserInfo employee,string end,bool testBool,int testInt)
{
    UserInfo[] users = new UserInfo[2];
    users[0] = new UserInfo();
    users[0].UserId = header.UserId + 11;
    users[0].UserLoginName = "header:" + header.UserLoginName + "_" + end + "_" + testBool.ToString() + "_" + testInt.ToString();
    users[0].UserNickName = "header:" + header.UserNickName + "_" + end + "_" + testBool.ToString() + "_" + testInt.ToString();

    users[1] = new UserInfo();
    users[1].UserId = employee.UserId + 21;
    users[1].UserLoginName = "employee:" + employee.UserLoginName + "_" + end + "_" + testBool.ToString() + "_" + testInt.ToString();
    users[1].UserNickName = "employee:" + employee.UserNickName + "_" + end + "_" + testBool.ToString() + "_" + testInt.ToString();

    return users;
}

客户端方法：
function TestCallWebSer2()
{
    var user = new Object();
    user.UserId=111;
    user.UserLoginName="zhang";
    user.UserNickName="晴空霹雳";
    var user2 = new Object();
    user2.UserId=1111;
    user2.UserLoginName="wang";
    user2.UserNickName="天空战记";
    
    $.postJOSN("WSService/TestService.asmx/TestSer",{"header":user,"employee":user2,"end":"xxxx","testBool":true,"testInt":30}, TestCall2Success );
}
function TestCall2Success(msg)
{       
    alert(msg[0].UserLoginName+"-------"+msg[1].UserLoginName);
}
*/