具体请求的登录验证页面后台逻辑处理,这里我们忽略,不在我们的学习范围内;关键的是使用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. CSS中overflow:scroll怎么设置只上下滚动而不左右滚动

    CSS中"overflow:scroll"默认是左右,上下都滚动.怎么设置只上下滚动而不左右滚动,下面有个不错的解决方法 CSS中"overflow:scroll&quo ...

  2. mybatis 一二事(2) - 动态代理

    db.properties 单独提取出来的数据库配置,方便以后维护管理 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhos ...

  3. WCF小问题总汇

    1.Q: WCF服务有没有构造函数或者静态构造函数? A:都不可用 2.Q: WCF中如何使用全局变量? A:用session绑定,或者静态变量 3.Q: WCF在WPF一直报xaml错误 A:不要把 ...

  4. 【Android】3.6 地图基本控制方法

    分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 一.简介 文件名:Demo05MapControl.cs 简介:介绍平移和缩放地图,双指操作地图,监听地图点击 ...

  5. c# 实现查找mysql安装路径

    1.c#能够调用msyql的导入导出命令,可是须要先推断客户机是否安装了mysql.及其安装mysql的路径问题. 2.查询mysql安装路径的函数 private string GetMysqlPa ...

  6. sparkSQL1.1入门之四:深入了解sparkSQL执行计划

    前面两章花了不少篇幅介绍了SparkSQL的执行过程,非常多读者还是认为当中的概念非常抽象.比方Unresolved LogicPlan.LogicPlan.PhysicalPlan是长得什么样子,没 ...

  7. 查杀病毒实战----------------》ddg.223 and AnXQV

    htop 发现导常: 接着发现可疑进程: 首先检测crontab,发现问题: # crontab -l */ * * * * curl -fsSL http://www.bdyutiudwj.com/ ...

  8. JVM调优总结 + jstat 分析

    jstat -gccause pid 1 每格1毫秒输出结果jstat -gccause pid 2000 每格2秒输出结果不断的在屏幕打印出结果   S0     S1     E      O   ...

  9. python学习之itsdangerous模块

    类 from itsdangerous import URLSafeTimedSerializer as ustsr class ustsr(secret_key) 参数: secret_key可以是 ...

  10. Spring Boot干货系列:(二)配置文件解析

    Spring Boot干货系列:(二)配置文件解析 2017-02-28 嘟嘟MD 嘟爷java超神学堂   前言 上一篇介绍了Spring Boot的入门,知道了Spring Boot使用“习惯优于 ...