常规的Jquery Ajax 验证登录,主要有3种服务端页面相应 ,也就是 aspx,ashx,asmx即webserivice 。

下面分别用3种方式来(aspx,ashx,asmx)做服务端来处理 Jquery  Ajax 传过来的用户名和密码验证!

例: Login.html 请求用户名和密码验证!

<head>
<script type="text/javascript"> $(document).ready(function() {
$("#go").bind('click', function() { var name = $.trim($("#txtName").val()); // $.trim()去除空格
var pwd = $.trim($("#txtPwd").val()); if (name == "") { $("#nameResult").html("<font color='red'>用户名不能为空</font>"); }
else { $("#nameResult").html(""); }
if (pwd == "") { $("#pwdResult").html("<font color='red'>密码不能为空</font>"); }
else { $("#pwdResult").html(""); } if (name != "" && pwd != "") {
//post 请求
$.ajax({
type: "post",
//服务器相应ajax请求,可以有 aspx页面,ashx页面 url: "AjaxLogin.aspx","AjaxLoginAshx.ashx",
url: "AjaxLoginAsmx.asmx/login", //调用 webserivice 下的login方法
cache: false,
data: "name=a&&pwd=b",
//aspx页面为服务器相应
success: function(html) { location.href = "default.aspx"; $("#go").attr("disabled", false) }, error: function(html) { alert("登录失败"); $("#go").attr("disabled", false) } });
} });
}); </script>
</head> <body>
<form id="form1" runat="server">
<div>
用户名<asp:TextBox ID="txtName" runat="server" ></asp:TextBox><span id="nameResult"></span>
<br />
密码<asp:TextBox ID="txtPwd" runat="server"></asp:TextBox><span id="pwdResult"></span>
<br />
<br /> <input type="button" id="go" value="登录" />
<asp:Button ID="go1" runat="server" Text="服务器控件登录" onclick="go_Click" />
</div>
</form>
</body>

1.服务端为 AjaxLogin.aspx 页面

首先修改 $.ajax 的 Url:"AjaxLogin.aspx"

protected void Page_Load(object sender, EventArgs e)
{ if (Request.Form["name"] != null && Request.Form["pwd"] != null)
{
if (Request.Form["name"].ToString().Trim() != "" && Request.Form["pwd"].ToString() != "")
{ string name = Request.Form["name"].ToString().Trim();
string pwd = Request.Form["pwd"].ToString();
Response.Cookies.Clear(); Response.Cookies.Add(new HttpCookie("name", name)); //添加cookie
Response.Cookies.Add(new HttpCookie("pwd",pwd));//添加密码 Response.Write("你已经成功登录"); } } }

2. 服务端为 AjaxLoginAshx.ashx 页面  (一般处理程序)

首先修改 $.ajax 的 Url:"AjaxLoginAshx.ashx"; 另:ashx以context.Response.Write 返回内容

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class AjaxLoginAshx : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
//context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
if (context.Request.Form["name"] != null && context.Request.Form["pwd"] != null)
{
if (context.Request.Form["name"].ToString().Trim() != "" && context.Request.Form["pwd"].ToString() != "")
{ string name = context.Request.Form["name"].ToString().Trim();
string pwd = context.Request.Form["pwd"].ToString();
context.Response.Cookies.Clear(); context.Response.Cookies.Add(new HttpCookie("name", name));
context.Response.Cookies.Add(new HttpCookie("pwd", pwd)); context.Response.Write("你已经成功登录"); }
else
{ context.Response.Write("没成功登录1");
} }
else
{ context.Response.Write("没成功登录2");
} } public bool IsReusable
{
get
{
return false;
}
}

3. 服务端为 AjaxLoginAsmx.asmx页面  (SOAP方式HTTP访问,用XML返回)

首先修改 $.ajax 的 Url:"AjaxLoginAsmx.asmx/login";   注意:  / 后面是方法名

另asmx页面以return 返回内容,response.cookies.add添加cookie

/// <summary>
/// AjaxLoginAsmx 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class AjaxLoginAsmx : System.Web.Services.WebService
{ [WebMethod]
public string HelloWorld()
{
return "Hello World";
} [WebMethod] public string login()
{ if (HttpContext.Current.Request.Form["name"] != null && HttpContext.Current.Request.Form["pwd"] != null)
{
if (HttpContext.Current.Request.Form["name"].ToString().Trim() != "" && HttpContext.Current.Request.Form["pwd"].ToString() != "")
{ string name = HttpContext.Current.Request.Form["name"].ToString().Trim();
string pwd = HttpContext.Current.Request.Form["pwd"].ToString(); //HttpContext.Current.Response.Cookies.Add(new HttpCookie("name", name));
//HttpContext.Current.Response.Cookies.Add(new HttpCookie("pwd", pwd)); //HttpContext.Current.Response.Write("你已经成功登录");
HttpContext.Current.Response.Cookies.Add(new HttpCookie("a", ""));
return "Hello World"; }
else
{
return "error1";
} } else
{
return "error2";
} }

Jquery Ajax处理,服务端三种页面aspx,ashx,asmx的比较的更多相关文章

  1. Jquery Ajax向服务端传递数组参数值

    在使用MVC时,向服务器端发送POST请求时有时需要传递数组作为参数值 下面使用例子说明,首先看一下Action [HttpPost] public ActionResult Test(List< ...

  2. C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?

    C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...

  3. Ajax轮询——“定时的通过Ajax查询服务端”

    Ajax轮询——"定时的通过Ajax查询服务端". 概念: 轮询(polling):客户端按规定时间定时像服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接. 百闻 ...

  4. jQuery中detach&&remove&&empty三种方法的区别

    jQuery中empty&&remove&&detach三种方法的区别 empty():移除指定元素内部的所有内容,但不包括它本身 remove():移除指定元素内部的 ...

  5. jquery取消事件冒泡的三种方法展示

    jquery取消事件冒泡的三种方法展示 html代码 <!doctype html> <html> <head> <meta charset="ut ...

  6. jquery动态加载js三种方法实例

    这里为你提供了三种动态加载js的jquery实例代码哦,由于jquery是为用户提供方便的,所以利用jquery动态加载文件只要一句话$.getScript(\"test.js\" ...

  7. 云计算服务的三种类型(SaaS、PaaS、IaaS)

    云计算可以帮助企业降低IT方面的成本和复杂性,并获得他们蓬勃发展所需的灵活性与敏捷性.但是,规划出通往云的明确路径并非易事.毕竟用户需要看透与云相关的市场大肆宣传,然后理解并分析不同种类的云计算模式的 ...

  8. Ajax打开三种页面的请求

    xmlhttprequest对象可以打开两种方式的页面请求 1,.asmx格式的webservice页面. 2,.aspx格式的web窗体 其中web窗体可以是调用一新建的web窗体,同时调用和被调用 ...

  9. aJax提交——服务端不能用request存储数据,session存数据客户端可以接收到

    aJax提交与普通提交是两种迥异的提交方式,这两种提交方式决定了客户端与服务端交互时存储.传输数据的方式也不同. aJax提交,客户端的请求数据存储在data中,服务端用request.getPara ...

随机推荐

  1. [webgrid] – header - (How to Add custom html to Header in WebGrid)

    How to Add custom html to Header in WebGrid MyEvernote Link Posted on March 30, 2013by mtryambake Ho ...

  2. chrome调试文章

    http://blog.csdn.net/a6225301/article/details/20207191#t1 http://www.360doc.com/content/13/1220/11/8 ...

  3. Java并发编程核心方法与框架-TheadPoolExecutor的使用

    类ThreadPoolExecutor最常使用的构造方法是 ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAli ...

  4. C# Monitoring-network

    http://www.codeproject.com/Articles/6259/Monitoring-network-speed

  5. Java8初体验(一)lambda表达式语法

    感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解 ...

  6. editplus如何配置php编译环境?

    为什么要配置php编译? 因为,要先看看 php文件是否能够 编译得过去, 有没有错误, 如果有错误, 不能通过编译, 则肯定不能运行. 所以, 可以先看一下编译 得不得行. 在preferences ...

  7. HTTP协议详解(真的很经典)

    HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展.目前在WWW中使用的是HTTP/1.0 ...

  8. jQuery回调、递延对象总结(上篇)—— jQuery.Callbacks

    前言: 作为参数传递给另一个函数执行的函数我们称为回调函数,那么该回调又是否是异步的呢,何谓异步,如:作为事件处理器,或作为参数传递给 (setTimeout,setInterval)这样的异步函数, ...

  9. SQL如何将A,B,C替换为'A','B','C'

    因为涉及到逗号,和单引号' 本来想一次转换成功, 但是最后貌似没有好的办法, 只有分两次完成了 select REPLACE(REPLACE('A,B,C',',','>,>'),'> ...

  10. 收到的电邮附件为Winmail.dat?

    以下信息来源于微软帮助中心:您收到电子邮件,其中包含一个 winmail.dat 的附件.电子邮件被人使用的 Microsoft Outlook 发送给您.该邮件的格式是丰富文本格式 (RTF). 原 ...