首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

菜鸟关于ajax的一点疑问

2013-01-06 
初学者关于ajax的一点疑问ajax将数据递交到后台的时候,后台采用什么来处理呢?我在网上看到基本都是一个页

初学者关于ajax的一点疑问
ajax将数据递交到后台的时候,后台采用什么来处理呢?我在网上看到基本都是一个页面来处理的,但我在实际中使用ajax+ashx的模式,假如用.aspx的话要走完整个页面生命周期感觉麻烦点了,为啥还有那么多例子或者是教程使用呢??还是有其他特别好的优点我没察觉到呢?另外还有其他方法处理post或者get过来的数据吗吗?
[解决办法]
谁说一定要aspx,ashx效率和兼容性比aspx好多了。。aspx还需要删除页面中的html代码,要不会一起输出到客户端

教程吗,参考就好了,不必当真
[解决办法]
实现说明我是按照你说的给你做一个按照你的想法的例子:
.net + ajax + .ashx 的方式来完成一次请求。
以一个登录验证的例子为例吧:实现方式如下
login.html

  $.ajax({
                    type: "POST",
                    url: "/ajax/login.ashx",
// txtUserName为页面中的用户名称
// txtPassword为页面中的密码
// RightShow 为加载的特效
                    data: "userName=" + encodeURIComponent(txtUserName.val()) + "&pwd=" + encodeURIComponent(txtPassword.val()),
                    beforeSend: function () { $.RightShow.show(); $('#btnLogin').attr('disabled', 'true'); }, //发送数据之前
                    complete: function () { $.RightShow.hide(); $('#btnLogin').removeAttr('disabled'); }, //接收数据完毕
                    // msg
                    success: function (msg) {
                        if (msg == "1") {
                            // 返回成功跳转主页面
                            location.href = "default.aspx";
                        } else if (msg == "3") {
                            alert("用户名或密码不正确!");
                            return false;
                        } else if (msg == "9") {
                            alert("对不起此用户已被管理员锁定!您无法登录。");
                            return false;
                        } else {


                            alert(msg); // 错误信息
                        }

                    }
                });


login.ashx 文件代码如下:
/// <summary>
/// 模块名称:用户登录模块验证
/// 作者:东北大亨
/// 编写日期:2010-07-27
/// </summary>
namespace NorthEastTyccon.ajax
{
    /// <summary>
    /// login 操作
    /// </summary>
    public class login : IHttpHandler, IRequiresSessionState
    {
         public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            try
            {
              // 用户名称
                string strUserName = Common.PublicMethod.GetString(context.Request["userName"]);

                // 密码 
                string strPWD = Common.PublicMethod.GetString(context.Request["pwd"]);


                 // logic start
// 获得你的逻辑方法返回来的值
                    String strFlagResult = logicName();
                 // logic end 
// 发给前台的数据
 context.Response.Write(strFlagResult);
            }
            catch (Exception ex)
            {
                context.Response.Write(ex.Message);
            }
        }
    }

}

这个是根据你说的我给你实现的方法。可能还有更好的方法以此为例希望给你帮助。


[解决办法]
可以post/get ashx ;通过request 来读取
[解决办法]
用什么处理都行,只有他是个URL

热点排行