Ajax - 登录
Login.html
<head>
<title>登录</title>
<mce:script src="js/jquery-1.5.2.js" mce_src="js/jquery-1.5.2.js" type="text/javascript"></mce:script>
<mce:script src="js/login.js" mce_src="js/login.js" type="text/javascript"></mce:script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="background">
<div id="loginBox">
<span id="title">登录</span>
<div id="LoginMessage">
用户名:
<input id="txtUser" type="text" maxlength="25" class="txtbox" />
<br />
密 码:
<input id="txtPassword" type="password" maxlength="25" class="txtbox" />
<br />
<center>
<div id="loading">
<img src="data:images/loading.gif" mce_src="data:images/loading.gif" alt="login"/></div>
<input id="btnLogin" type="image" src="data:images/login.gif" mce_src="data:images/login.gif"/>
</center>
</div>
</div>
</div>
</div>
</form>
</body>
Login.js:
/*----------------------------------------------------------------
// File Name:login.js
// File Introduce
// check and handler user input
//
// Create Mark
// Create Date: 4/20/2011 11:15:19 PM
// Create by Ben.Jiang
//----------------------------------------------------------------*/ var email_str = /^(?:[a-z/d]+[_/-/+/.]?)*[a-z/d]+@(?:([a-z/d]+/-?)*[a-z/d]+/.)+([a-z]{2,})+$/i; //Email regular expression $(document).ready(function() {
$("#btnLogin").click(function() {
var username = $("#txtUser").val();
var password = $("#txtPassword").val();
if (username == "" || password == "") {//check if the input is legal
alert("用户名和密码不可以为空!");
return false;
}
else if (!email_str.test(username)) {//check if email is legal
alert("邮件地址格式不正确!");
return false;
} else {
$.ajax({
type: "POST",
url: "/Ajax/LoginHandler.ashx", //event handler url
data: "username=" + escape($('#txtUser').val()) + "&password=" + escape($('#txtPassword').val()),//发送ajax请求
beforeSend: function() {
$("#loading").css("display", "block"); //show loading
$("#btnLogin").css("display", "none"); //hide login button
},
success: function(msg) {
$("#loading").hide(); //hide loading
if (msg == "unregistered") {
alert("对不起,该用户未注册!");//user is unregistered
}
if (msg == "frozen") {
alert("对不起,该用户已被冻结!");//user id frozen
}
if (msg == "fail") {
alert("对不起,用户名或密码错误!"); //login failed
}
if (msg == "success") {
parent.document.location.href = "manage.aspx"; //login successfully
}
},
complete: function(data) {
$("#loading").css("display", "none"); //hide loading
$("#btnLogin").css("display", "block"); //show login
}
});
}
return false; //stop client continue submit
}
);
});
LoginHandler.ashx:
/*----------------------------------------------------------------
// File Name:LoginHandler.ashx.cs
// File Introduce
// handler user login
//
// Create Mark
// Create Date: 4/20/2011 12:15:19 PM
// Create by Ben.Jiang
//----------------------------------------------------------------*/ using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
using System.Web.SessionState;
using PLA.BLL;
using PLA.Model;
using Web.App_Code; namespace Web.Ajax
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class LoginHandler : IHttpHandler,IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string username = context.Request["username"];
string password = context.Request["password"]; UserBLL userBLL = new UserBLL();
//check if the user is registered
if (!userBLL.GetUserRegister(username))
{
context.Response.Write("unregistered");
}//check if the user is frozen
else if (!userBLL.CheckUserBanStatusByEmail(username))
{
context.Response.Write("frozen");
}
else
{
LoginBLL loginBLL = new LoginBLL();
//check if the username and password is right
bool flag = loginBLL.ValidateLogin(username, MD5Helper.getMd5Hash(password), null);
if (flag)
{
UserInfo user = userBLL.GetUserInfoByEmail(username);
context.Session["UID"] = user.U_ID;
context.Session["Email"] = user.U_Email;
context.Response.Write("success");
}
else
{
context.Response.Write("fail");
}
}
} public bool IsReusable
{
get
{
return false;
}
}
}
}
Ajax - 登录的更多相关文章
- ajax登录验证-js
1.html代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...
- python 全栈开发,Day87(ajax登录示例,CSRF跨站请求伪造,Django的中间件,自定义分页)
一.ajax登录示例 新建项目login_ajax 修改urls.py,增加路径 from app01 import views urlpatterns = [ path('admin/', admi ...
- Ajax登录用户名密码
<script src="http://code.jquery.com/jquery-latest.js"></script>#引入jQuery#当点击函数 ...
- Django Ajax登录 防止CSRF
什么是CSRF 维基百科: 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CS ...
- Django 博客项目01 数据库设计与验证码校验+Ajax登录
数据库设计 from django.db import models from django.contrib.auth.models import AbstractUser class UserInf ...
- 知问前端——Ajax登录
本文,将使用Ajax登录. 一.服务器端代码 is_user.php: <?php require 'config.php'; $query = mysql_query("SELECT ...
- 巨蟒python全栈开发django10:ajax&&登录认证
通过题目进行知识点回顾: 聚合查询 From django.db.models import Avg,Min,Max,F,Q,Count,Sum #查询书籍的平均值 Ret= Models.Book. ...
- 转:ajax的AntiForgery和Authorize 以及ajax登录例子
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/ashcn2001/article/det ...
- 项目:jSon和Ajax登录功能
组件化网页开发 / 步骤二 · 项目:jSon和Ajax登录功能 要熟练编写封装的$.ajax({........})
- 解决shiro自定义filter后,ajax登录无法登录,并且无法显示静态资源的问题
这个问题困扰了我一天,看了下面两个文章,豁然开朗: https://www.cnblogs.com/gj1990/p/8057348.html https://412887952-qq-com.ite ...
随机推荐
- 转:CSS圆角详解
CSS3是样式表(style sheet)语言的最新版本,它的一大优点就是支持圆角. 网页设计大师Nicholas Zakas的最新文章,清晰易懂地解释了CSS3圆角的各个方面,非常值得学习.以下就是 ...
- Spring连接MySQL、Oracle和SQL Server
其中applicationContext.xml的配置如下: <?xml version="1.0" encoding="UTF-8"?> < ...
- 前序 中序 后序 遍历 递归 非递归算法 java实现
前序遍历 非递归 public void preordernorec(TreeNode root){ //System.out.println("先序遍历(非递归):"); //用 ...
- Java进阶04 RTTI
链接地址:http://www.cnblogs.com/vamei/archive/2013/04/14/3013985.html 作者:Vamei 出处:http://www.cnblogs.com ...
- JVM调优总结(十一)-反思
垃圾回收的悖论 所谓“成也萧何败萧何”.Java的垃圾回收确实带来了很多好处,为开发带来了便利.但是在一些高性能.高并发的情况下,垃圾回收确成为了制约Java应用的瓶颈.目前JDK的垃圾回收算法,始终 ...
- 一、Mongo的安装
注:学习为主,平台为WIN7 32位系统 一.Mongo的安装 1.1 下载 到官方下载地址(http://www.mongodb.org/downloads)去下载所需要的版本 1.2 安装与运行 ...
- 面试题之——抽象类(abstract class)与接口(interface)的区别
抽象类可以有构造方法,接口中不能有构造方法.(虽然抽象类有构造方法,但它也不能被实例化) 抽象类中可以有普通成员变量,接口中没有普通成员变量. 抽象类和接口中都可以包含静态成员变量.抽象类中的静态成员 ...
- struts2之高危远程代码执行漏洞,可造成服务器被入侵,下载最新版本进行修复
Struts2 被发现存在新的高危远程代码执行漏洞,可造成服务器被入侵,只要是Struts2版本 低于 2.3.14.3 全部存在此漏洞.目前官方已经发布了最新的版本进行修复.请将stru ...
- Swift Error fatal error: unexpectedly found nil while unwrapping an Optional value
致命的错误: 对一个为空的optional值进行解包. 强制解包(forced unwrapping): 在optional后面加叹号. 比如 "value!" 错误代码: le ...
- 数据结构读书笔记(三)(C语言)
栈 顺序实现: 存储结构: #define STACK_INIT_SIZE 10 // 存储空间初始分配量 #define STACK_INCREMENT 2 // 存储空间分配增量 struct S ...