具体请求的登录验证页面后台逻辑处理,这里我们忽略,不在我们的学习范围内;关键的是使用jQuery异步请求方法,如下例子:

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>

 <!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">
<head id="Head1" runat="server">
<title></title>
<script type="text/javascript" src="_layouts/Scripts/jquery-1.4.1.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div id="loginDiv">
<asp:Label ID="lbl_LoginName" runat="server" Text="用户账号:"></asp:Label><asp:TextBox
ID="txt_LoginName" runat="server" Text="searchstg"></asp:TextBox><br />
<asp:Label ID="lbl_Pwd" runat="server" Text="用户密码:"></asp:Label><asp:TextBox ID="txt_Pwd"
runat="server" Text="portal@stG"></asp:TextBox><br />
<asp:Button ID="btn_Submit" runat="server" Text="提交" OnClientClick="clearAuthCache();" />
<asp:Label ID="lbl_Info" runat="server"></asp:Label>
<hr />
<input type="button" id="btn_Login" value="异步登录网站" onclick="doLogin();" />&nbsp;&nbsp;&nbsp;&nbsp;
<input type="button" id="btn_Logout" value="注销账号" onclick="clearAuthCache();" />
</div>
</form>
<script type="text/javascript">
var clearAuthCache = function () {
if ('<%= isClearAuthCache %>'.toLowerCase() == 'true') {
try {
document.execCommand('ClearAuthenticationCache'); //只针对IE
}
catch (e) {
}
finally {
}
}
};
//兼容其它浏览器
var jq_AsynLogin = function (loginName, pwd, domain, asynUrl, successDefaultUrl) {
$.ajax({
type: 'POST',
url: asynUrl,
async: true,
global: false,
username: domain + '\\' + loginName,
password: pwd,
beforeSend: function (xmlHttpRequest) {
var imgStr = '<img src="/_Layouts/Styles/WorkPlatform/Blue/loading.gif" alt="" />';
$('#loginDiv').html(imgStr);
},
success: function (data, textStatus) {
window.location.href = successDefaultUrl;
},
complete: function () {
},
error: function (xmlHttpRequest, textStatus) {
if (xmlHttpRequest.status == '') {
alert('帐号或密码错误!');
window.location.href = window.location.href;
}
else {
alert("获取数据失败,请重试!");
}
}
});
};
//只针对IE
var asynLogin = function (loginName, pwd, domain, asynUrl, successDefaultUrl) {
var auth = new ActiveXObject('msxml2.xmlhttp');
auth.open('post', asynUrl, false, domain + '\\' + loginName, pwd);
auth.send(); switch (auth.status) {
case :
window.location.href = successDefaultUrl;
break;
case :
alert('帐号或密码错误!');
break;
default:
alert('抱歉,请再试一次!');
}
};
var doLogin = function () {
var loginNameObj = document.getElementById('<%= txt_LoginName.ClientID %>');
var pwdObj = document.getElementById('<%= txt_Pwd.ClientID %>');
if (loginNameObj.value == '') {
alert('请输入用户账号!');
loginNameObj.onfocus();
return;
}
if (pwdObj.value == '') {
alert('请输入用户密码!');
pwdObj.onfocus();
return;
}
jq_AsynLogin(loginNameObj.value, pwdObj.value, 'contoso', 'http://yxjt.contoso.com/', 'http://yxjt.contoso.com/WorkPlatform2/Pages/default.aspx');
};
</script>
</body>
</html>

jQuery异步请求模拟IE登录网站的更多相关文章

  1. jQuery异步请求(如getJSON)跨域解决方案

    相信大家在使用jQuery异步请求非自己网站内相对资源(通过别人站点上的URL直接读取)使经常会遇到如下错误吧,实际上这些错误都是浏览器安全机制“搞的鬼”,才让我们开发路上遇到了拦路虎. 当你直接在浏 ...

  2. 实现在Android简单封装类似JQuery异步请求

    在android开发中经常会使用异步请求数据,通常会使用handler或者AsyncTask去做,handler 配合message 使用起来比较麻烦,AsyncTask 线程池只允许128个线程工作 ...

  3. Android简单封装类似JQuery异步请求

    在android开发中经常会使用异步请求数据,通常会使用handler或者AsyncTask去做,handler 配合message 使用起来比较麻烦,AsyncTask 线程池只允许128个线程工作 ...

  4. python模拟自动登录网站(urllib2)

    不登录打开网页: import urllib2 request = urllib2.Request('http://www.baidu.com') response = urllib2.urlopen ...

  5. Django(十三)状态保持 —— cookie与session+ajax异步请求+session记住登录状态+cookie记住登录名密码

    一.状态保持的概述 http协议是无状态的.下一次去访问一个页面时并不知道上一次对这个页面做了什么.因此引入了cookie.session两种方式来配合解决此问题. Duplicate entry:重 ...

  6. Jquery异步请求简单实例(转)

    本文引用自Xingsoft. 一.Jquery向aspx页面请求数据 前台页面JS代码:             $("#Button1").bind("click&qu ...

  7. Jquery异步请求数据实例

    一.Jquery向aspx页面请求数据 前台页面JS代码: $("#Button1").bind("click", function () { $.ajax({ ...

  8. Jquery异步请求数据实例代码

    一.Jquery向aspx页面请求数据 前台页面JS代码: 代码如下: $("#Button1").bind("click", function () { $. ...

  9. jQuery异步请求ajax()之complete参数详解

    请求完成后回调函数 (请求success 和 error之后均调用).这个回调函数得到2个参数:XMLHTTPRequest) 对象和一个描述请求状态的字符串("success", ...

随机推荐

  1. BBED标记坏块以及修复坏块

    创建測试表: ZBDBA@orcl11g>select * from zbdba; NAME -------------------------------------------------- ...

  2. 利用命令行引用外部jar包以使程序正常执行的4种方法

    声明:本博客为原创博客.未经同意.不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/30976069 平时写一些小的Java Demo ...

  3. asp.net实现md5加密

    MD5加密简单的说就是把一段明文 通过某种运算方式 求出密文.在ASP.NET中MD5的加密方式很简单,详细介绍看下文 MD5加密简单的说就是把一段明文 通过某种运算方式 求出密文.例如:明文为:ab ...

  4. SharePoint自动化系列——Error features自动deactivate

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ SharePoint Content Deployment prerequisite——Error ...

  5. hdu2609(最小表示法)

    题意:有n个环形字符串,一个环形字符串移动会形成不能的字符串,我们把它们看作同一串字符串,求有多少个不同的字符串....... 思路:用最小表示发将一个环形串的最小字典序找出来,然后让这个环形串按照这 ...

  6. 如何在 Java 中正确使用 wait, notify 和 notifyAll?

    简介     wait,notify,notifyAll,都是属于object对象提供的方法,但在实际工作中怎么使用这几个方法,确是很多程序员清楚,不够明白,在群里问,有人说,哪个线程想wait,就用 ...

  7. 来自阿里的 json 解析方案 fastjson

    说起Json 解析,有非常多方法,不管是出自Google 的Gson也好,还是来自其它的某某.想必大家都非常熟悉. 今日在github上闲逛.偶遇 一 json 解析库.看起来非常不错,据说是眼下最快 ...

  8. linux中vim中文显示乱码

    这里所说的都是全局设定,打开vimrc文件后,只需要在文件最后添加以下代码就可以了: set fileencodings=utf-8,gb2312,gbk,gb18030 set termencodi ...

  9. 【Unity笔记】常用插件

    记录一些常见插件,随时补充. iTween动画插件 原理:插值法,给出初始值和终点值,自动算出中间值. DoTween Tween动画 Playmaker $45 Playmaker由第三方软件商Hu ...

  10. Java并发编程()阻塞队列和生产者-消费者模式

    阻塞队列提供了可阻塞的put和take方法,以及支持定时的offer和poll方法.如果队列已经满了,那么put方法将阻塞直到有空间可用:如果队列为空,那么take方法将会阻塞直到有元素可用.队列可以 ...