ajax与json

使用以下方法必须注意路径是否正确,这点是绝大部分问题的根源。

取数例子:不刷新获取登录信息

登录前:

登录后:

页面jq:

        $("#btnLogin").click(function () {
            var name = $("#loginName");
            var pass = $("#loginPass");
            var code = $("#txtCode");

            if ($.trim(name.val()) == "") { name.focus(); return alert("请输入你的用户名!"); }
            if ($.trim(pass.val()) == "") { pass.focus(); return alert("请输入你的密码!"); }
            if ($.trim(code.val()) == "") { code.focus(); return alert("请输入你的验证码!"); }

            $.ajax({
                contentType: "application/json",
                url: "/WS/vinson.asmx/Logon",
                data: "{userName:‘" + name.val() + "‘,userPass:‘" + pass.val() + "‘,code:‘" + code.val() + "‘}",
                type: "POST",
                dataType: "json",
                success: function (json) {
                    json = eval("(" + json.d + ")");

                    if (json.success == "error") {
                        $("#divLogin").show();

                        alert(json.msg);
                        code.val("");
                        pass.val("");
                        pass.focus();
                        UpdateImage();
                    } else if (json.success == "success") {
                        $("#imgFace").attr("src", "/gamepic/face" + json.fid + ".gif");
                        var name = SubString(json.account, 12, "");
                        $("#dlInfo").html("<span>帐号:" + name + "</span><span>ID:" + json.gid + "</span>").attr("title", json.account);
                        $("#mOrder").html(json.morder);
                        $("#loves").html(json.loves);
                        $("#mPat a").before(json.UserPat+" ");
                        $("#counts").html(json.counts);
                        if (parseInt(json.dayCount) > 0)
                            $("#qd ul").css("background", "url(../images/qiandao_n.png) 0 0px no-repeat");
                        else
                            $("#qd ul").css("background", "url(../images/qiandao_n.png) 0 -60px no-repeat");
                        $("#divLogin").hide();
                        $("#divInfo").show();
                    }
                },
                error: function (err, ex) {
                    alert(err.responseText);
                    UpdateImage();
                }
            });
        })
vinson.asmx文件:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;

using Game.Entity.Accounts;
using Game.Facade;
using Game.Utils;
using System.Text;
using System.Collections.Generic;
using Game.Kernel;

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

    public vinson () {

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

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

    private AccountsFacade accountFacade = new AccountsFacade();
    private DataControl gData = new DataControl();
    /// <summary>
    /// 用户登录
    /// </summary>
    /// <param name="userName"></param>
    /// <param name="userPass"></param>
    /// <param name="code"></param>
    /// <returns></returns>
    [WebMethod]
    public string Logon(string userName, string userPass, string code)
    {
        string msg = "";

        if (TextUtility.EmptyTrimOrNull(userName) || TextUtility.EmptyTrimOrNull(userPass))
        {
            msg = "抱歉!您输入的用户名或密码错误了。";
            return "{success:‘error‘,msg:‘" + msg + "‘}";
        }

        //验证码错误
        if (!code.Equals(Fetch.GetVerifyCode(), StringComparison.InvariantCultureIgnoreCase))
        {
            msg = "抱歉!您输入的验证码错误了。";
            return "{success:‘error‘,msg:‘" + msg + "‘}";
        }

        Message umsg = accountFacade.Logon(userName, userPass);
        if (umsg.Success)
        {
            UserInfo ui = umsg.EntityList[0] as UserInfo;
            ui.LogonPass = TextEncrypt.EncryptPassword(userPass);

            Fetch.SetUserCookie(ui.ToUserTicketInfo());
            string mOrder = ui.MemberOrder == 0 ? "普通会员" : ui.MemberOrder == 1 ? "蓝钻会员" : ui.MemberOrder == 2 ? "黄钻会员" : ui.MemberOrder == 3 ? "白钻会员" : "红钻会员";
            int UserPat = (int)gData.SelectValue("select UserPat from AccountsInfo where UserID=" + ui.UserID, "DBAccounts", 0);
            int counts = (int)gData.SelectValue("select count(*) from RecordSignIn where UserID=" + ui.UserID + " and month(CollectDate)=" + System.DateTime.Now.Month, "DBRecord", 0);
            int dayCount = (int)gData.SelectValue("select count(*) from RecordSignIn where UserID=" + ui.UserID + " and convert(varchar(100),CollectDate,23)=‘" + System.DateTime.Now.ToString("yyyy-MM-dd") + "‘", "DBRecord", 0);
            msg = "{success:‘success‘,account:‘" + ui.Accounts + "‘,gid:‘" + ui.GameID + "‘,dayCount:‘" + dayCount + "‘,counts:‘" + counts + "‘,UserPat:‘" + UserPat + "‘,loves:‘" + ui.LoveLiness + "‘,morder:‘" + mOrder + "‘,fid:‘" + ui.FaceID + "‘}";
        }
        else
        {
            msg = "{success:‘error‘,msg:‘" + umsg.Content + "‘}";
        }
        return msg;
    }

    /// <summary>
    /// 获取用户登录信息
    /// </summary>
    /// <returns></returns>
    [WebMethod]
    public string GetUserInfo()
    {
        UserTicketInfo userTick = Fetch.GetUserCookie();
        if (userTick == null) return "{}";
        Message umsg = accountFacade.GetUserGlobalInfo(userTick.UserID, 0, "");
        if (umsg.Success)
        {
            UserInfo ui = umsg.EntityList[0] as UserInfo;
            string mOrder = ui.MemberOrder == 0 ? "普通会员" : ui.MemberOrder == 1 ? "蓝钻会员" : ui.MemberOrder == 2 ? "黄钻会员" : ui.MemberOrder == 3 ? "白钻会员" : "红钻会员";
            int UserPat = (int)gData.SelectValue("select UserPat from AccountsInfo where UserID=" + ui.UserID, "DBAccounts", 0);
            int counts = (int)gData.SelectValue("select count(*) from RecordSignIn where UserID=" + ui.UserID + " and month(CollectDate)=" + System.DateTime.Now.Month, "DBRecord", 0);
            int dayCount = (int)gData.SelectValue("select count(*) from RecordSignIn where UserID=" + ui.UserID + " and convert(varchar(100),CollectDate,23)=‘" + System.DateTime.Now.ToString("yyyy-MM-dd") + "‘", "DBRecord", 0);
            return "{success:‘success‘,account:‘" + ui.Accounts + "‘,gid:‘" + ui.GameID + "‘,dayCount:‘" + dayCount + "‘,counts:‘" + counts + "‘,UserPat:‘" + UserPat+"‘,loves:‘" + ui.LoveLiness + "‘,morder:‘" + mOrder + "‘,fid:‘" + ui.FaceID + "‘}";
        }
        return "{}";
    }

    /// <summary>
    /// 检测用户名
    /// </summary>
    /// <param name="userName"></param>
    /// <returns></returns>
    [WebMethod]
    public string CheckName(string userName)
    {
        Message umsg = accountFacade.IsAccountsExist(userName);
        if (umsg.Success)
        {
            return "{success:‘success‘}";
        }
        return "{success:‘error‘,msg:‘" + umsg.Content + "‘}";
    }

    /// <summary>
    /// 检测昵称
    /// </summary>
    /// <param name="userName"></param>
    /// <returns></returns>
    [WebMethod]
    public string CheckNickName(string nickName)
    {
        if (accountFacade.IsNickNameExist(nickName))
        {
            return "{success:‘success‘}";
        }
        return "{success:‘error‘}";
    }

    /// <summary>
    /// 用户魅力排名
    /// </summary>
    /// <returns></returns>
    [WebMethod]
    public string GetUserLoves()
    {
        StringBuilder msg = new StringBuilder();
        IList<UserInfo> users = accountFacade.GetUserInfoOrderByLoves();
        if (users == null) return "{}";
        msg.Append("[");
        foreach (UserInfo user in users)
        {
            msg.Append("{userName:‘" + user.NickName + "‘,loves:‘" + user.LoveLiness + "‘},");
        }
        msg.Remove(msg.Length - 1, 1);
        msg.Append("]");
        return msg.ToString();
    }
}

可以使用这种方法跳到asmx页面做一些事情,而不仅仅是像上面那样取数:

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

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

    public Lottery () {

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

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

    private DataControl gData = new DataControl();

    [WebMethod]
    public string insertLotteryLog(string LotteryID, string UserID)
    {
        string msg = "";

        string strClientIP = "";
        if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
            strClientIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(new char[] { ‘,‘ })[0];
        else
            strClientIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

        List<string[]> sqls = new List<string[]>();
        //1.插入抽奖记录
        string sql = "insert into QPRecordDB.dbo.RecordLotteryLog (UserID,LotteryID,ClientIP,CollectDate) values (" + UserID + "," + LotteryID + ",‘" + strClientIP + "‘,getdate())";
        sqls.Add(new string[] { "DBRecord", sql });

        if (gData.ExecuteMultiTran(sqls))
        {
            msg = "{success:‘success‘,msg:‘insert success‘}";
        }
        else
        {
            msg = "{success:‘error‘,msg:‘insert failed‘}";
        }
        return msg;
    }

    [WebMethod]
    public string LotteryFee(string UserID)
    {
        string msg = "";

        List<string[]> sqls = new List<string[]>();
        //1.扣手续费
        long Score = (long)gData.SelectValue("select Score from QPTreasureDB.dbo.GameScoreInfo where UserID=" + UserID, "DBTreasure", 0);
        if (Score >= 200)
        {
            string sql = "update QPTreasureDB.dbo.GameScoreInfo set Score=Score-200 where UserID=" + UserID;
            sqls.Add(new string[] { "DBTreasure", sql });

            if (gData.ExecuteMultiTran(sqls))
            {
                msg = "{success:‘success‘}";
            }
            else
            {
                msg = "{success:‘error‘}";
            }
        }
        else
            msg = "{success:‘arrears‘}";
        return msg;
    }

    [WebMethod]
    public string FeeOver(string UserID,string FeeTime)
    {
        string msg = "";
        int RecordID = (int)gData.SelectValue("select RecordID from RecordLotteryFee where UserID=" + UserID + " and convert(varchar(100),CollectDate,23)=convert(varchar(100),getdate(),23)", "DBRecord", 0);

        List<string[]> sqls = new List<string[]>();
        string sql = "update QPRecordDB.dbo.RecordLotteryFee set FeeTime=" + FeeTime + " where RecordID=" + RecordID;
        sqls.Add(new string[] { "DBRecord", sql });
        if (gData.ExecuteMultiTran(sqls))
        {
            msg = "{success:‘success‘}";
        }
        else
        {
            msg = "{success:‘error‘}";
        }

        return msg;
    }

    [WebMethod]
    public string getLotteryName(string LotteryID)
    {
        string msg = "";
        string LotteryName = gData.SelectValue("select LotteryName from Lottery where LotteryID=" + LotteryID, "DBNativeWeb", "").ToString();

        msg = "{lotteryname:‘" + LotteryName + "‘}";

        return msg;
    }
}

ajax与json

时间: 2024-10-16 03:33:46

ajax与json的相关文章

Struts2.5 利用Ajax将json数据传值到JSP

AJAX +JSON=>JSP AJAX AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面. JSON JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范

JQuery处理json与ajax返回JSON实例[转]

json数据是一种经型的实时数据交互的数据存储方法,使用到最多的应该是ajax与json配合使用了,下面我来给大家介绍jquery处理json数据方法. 一.JSON的一些基础知识. JSON中对象通过“{}”来标识,一个“{}”代表一个对象,如{“AreaId”:”123”},对象的值是键值对的形式(key:value). “[]”,标识数组,数组内部各个数据之间通过“,”分割,如[“AreaId”:”123”,”AreaId”:”345”]. 很多情况下是对象数组,那就是这样:  代码如下

Ajax与JSON使用教程

Ajax与JSON使用教程1.1.1 摘要 Ajax技术的核心是XMLHttpRequest对象(简称XHR),可以通过使用XHR对象获取到服务器的数据(入门教程qkxue.net),然后再通过DOM将数据插入到页面中呈现(腾云科技ty300.com).虽然名字中包含XML,但Ajax通讯与数据格式无关,所以我们的数据格式可以是XML或JSON等格式. XMLHttpRequest对象用于在后台与服务器交换数据,具体作用如下: 在不重新加载页面的情况下更新网页    在页面已加载后从服务器请求数

ajax返回JSON时的处理方式

JSON中对象通过“{}”来标识,一个“{}”代表一个对象,如{“AreaId”:”123”},对象的值是键值对的形式(key:value). json_encode() 该函数主要用来将数组和对象,转换为json格式 json_encode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_encode — 对变量进行 JSON 编码 Report a bug 说明 string json_encode ( mixed $value [, int $opti

通过Jquery中Ajax获取json文件数据

1. JSON(JavaScript Object Notation): javaScript对象表示法: 是存储和交换文本信息的语法,比xml更小,更快,更易解析. 2. JSON基本书写格式 : 名称/值对. 例如: "Student":"Tom" Json值可以是: 数字(整数或浮点数) 字符串(在双引号中) 逻辑值(true或者false) 数组(在方括号中) 对象(在花括号中) null  例如(对象):{"name":"to

调用AJAX返回JSON、XML数据类型

1.调用AJAX返回JSON数据 用下拉列表显示Nation表民族名称 主页面: <!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"> <he

ajax访问json文件缓存问题

ajax访问json文件,json文件改动,访问的时候也不能及时看到改动后的内容. 这是因为浏览器缓存的原因. 在这时候就需要清除浏览器的缓存或者加上一个标记,让ajax访问文件的时候知道这是一个新的文件,一般都是利用时间戳来解决. 解决办法:在访问ajax路径的后面加上一个时间戳参数. ajax({ method: 'POST', url: '../resource/jsonp/albumDetail/albumDetail_'+file+'.json?timestamp=new Date()

JQuery处理json与ajax返回JSON实例

一.JSON的一些基础知识. JSON中对象通过“{}”来标识,一个“{}”代表一个对象,如{“AreaId”:”123”},对象的值是键值对的形式(key:value). “[]”,标识数组,数组内部各个数据之间通过“,”分割,如[“AreaId”:”123”,”AreaId”:”345”]. 很多情况下是对象数组,那就是这样: 代码如下 复制代码 [{“AreaId”:”123”},{“AreaId”:”345”}] 其实数组也是一个对象,上面的格式也可以写成这样: 代码如下 复制代码 {“

快速掌握Ajax-Ajax基础实例(Ajax返回Json在Java中的实现)

(转)实例二:Ajax返回Json在Java中的实现 转自http://www.cnblogs.com/lsnproj/archive/2012/02/09/2341524.html#2995114 在这篇中主要是说一下使用Json来将后台取得的数据显示到前台页面.可以说这种方法应该是实现无刷新分页的基础,而且在开发过程中经常被用到.这里的后台部分由JAVA来实现. 这个例子也在上一篇中那个项目中实现.新建一个SecondTest.html页面,定义一个按钮,并给这个按钮绑定事件ajaxJson

Ajax获取 Json文件提取数据

摘自 Ajax获取 Json文件提取数据 1. json文件内容(item.json) [ { "name":"张国立", "sex":"男", "email":"[email protected]", "url":"./img/1.jpg" }, { "name":"张铁林", "sex"