现在的位置: 首页 > 综合 > 正文

jquery ajax post 回调函数不执行的原因分析和解决办法

2013年10月07日 ⁄ 综合 ⁄ 共 1035字 ⁄ 字号 评论关闭

今天在写一个检查用户名的功能时,使用的是jQuery.post( url, [data], [callback], [type] )这个函数,但是发现其中的回调函数不能执行。

先来看看我的代码:

前台代码:

<script type="text/javascript">

        function checkUser() {

            var user = $('#<%=txtUser.ClientID %>').val();

            $.post('checkUser.ashx', { Action: "Check", Name: user },

                function (data) {

                    alert(data);

                },

            "json");

        }

 </script>

后台代码(checkUser.ashx):

        public void ProcessRequest(HttpContext context)

        {

            context.Response.ContentType = "application/json";

            string action = context.Request["Action"];

            string user = context.Request["Name"];

            string result = "{result: 0}";

            switch (action)

            {

                case "Check":

                    if (us.isExists(user))

                    {

                        result = "{result: 1}";

                    }

                    break;

            }

            context.Response.Write(result);

        }

但是怎么也不执行回调函数中的alert(data)语句,经过单步跟踪,最后发现是返回的Json字符串有问题。

原来jquery中规定返回的JSON字符串的KEY要用引号括起来,如{"result": 1}这样才可以。

【上篇】
【下篇】

抱歉!评论已关闭.