jQuery异步请求模拟IE登录网站
具体请求的登录验证页面后台逻辑处理,这里我们忽略,不在我们的学习范围内;关键的是使用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();" />
<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登录网站的更多相关文章
- jQuery异步请求(如getJSON)跨域解决方案
相信大家在使用jQuery异步请求非自己网站内相对资源(通过别人站点上的URL直接读取)使经常会遇到如下错误吧,实际上这些错误都是浏览器安全机制“搞的鬼”,才让我们开发路上遇到了拦路虎. 当你直接在浏 ...
- 实现在Android简单封装类似JQuery异步请求
在android开发中经常会使用异步请求数据,通常会使用handler或者AsyncTask去做,handler 配合message 使用起来比较麻烦,AsyncTask 线程池只允许128个线程工作 ...
- Android简单封装类似JQuery异步请求
在android开发中经常会使用异步请求数据,通常会使用handler或者AsyncTask去做,handler 配合message 使用起来比较麻烦,AsyncTask 线程池只允许128个线程工作 ...
- python模拟自动登录网站(urllib2)
不登录打开网页: import urllib2 request = urllib2.Request('http://www.baidu.com') response = urllib2.urlopen ...
- Django(十三)状态保持 —— cookie与session+ajax异步请求+session记住登录状态+cookie记住登录名密码
一.状态保持的概述 http协议是无状态的.下一次去访问一个页面时并不知道上一次对这个页面做了什么.因此引入了cookie.session两种方式来配合解决此问题. Duplicate entry:重 ...
- Jquery异步请求简单实例(转)
本文引用自Xingsoft. 一.Jquery向aspx页面请求数据 前台页面JS代码: $("#Button1").bind("click&qu ...
- Jquery异步请求数据实例
一.Jquery向aspx页面请求数据 前台页面JS代码: $("#Button1").bind("click", function () { $.ajax({ ...
- Jquery异步请求数据实例代码
一.Jquery向aspx页面请求数据 前台页面JS代码: 代码如下: $("#Button1").bind("click", function () { $. ...
- jQuery异步请求ajax()之complete参数详解
请求完成后回调函数 (请求success 和 error之后均调用).这个回调函数得到2个参数:XMLHTTPRequest) 对象和一个描述请求状态的字符串("success", ...
随机推荐
- php excel类 phpExcel使用方法介绍
phpExcel操作excel可以方便的加入图片,支持jpg gif png格式. 下载地址:http://www.codeplex.com/PHPExcel 下面是总结的几个使用方法 include ...
- MySQL PLSQL Demo - 001.创建、调用、删除过程
drop procedure if exists p_hello_world; create procedure p_hello_world() begin select sysdate(); end ...
- 安卓测试之ADB命令
什么是ADB: adb的全称为Android Debug Bridge,就是起到调试桥的作用.借助adb工具,我们可以管理设备或手机模拟器的状态.还可以进行很多手机操作,如安装软件.系统升级.运行sh ...
- jquery50个代码段
1. 如何创建嵌套的过滤器 ? 1 //允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分.在这种情况下, //查询删除了任何没(:not)有(:has) //包含class ...
- Ajax的XMLHttpRequest对象的属性和方法总结
1.redayState属性: 当一个XMLHttpRequest对象被创建后,readyState属性别哦是当前对象正处于什么状态:0:未初始化状态:已经建立:1:准备发送状态:此时XMLHttpR ...
- feginclient demo
1.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...
- js屏蔽键盘按键
3.1屏蔽键盘所有键 <script language="javascript"> <!-- function document.onkeydown(){ eve ...
- java 多线程7: (suspend方法与resume方法) 挂起与恢复
suspend方法与resume 是 实例方法,已废弃 缺点一:会造成独占,从而造成死锁 缺点二:会造成数据不同步,不能保证数据原子性
- text-align 在ie7与ie8下的区别
在某元素上应用text-align:center; 在ie7下解释为,该元素内的元素和文字都居中. 在ie8下解释为,该元素内的文字居中. 例如:<div style="borde ...
- Sqli-LABS通关笔录-8[延时注入]
通过该关卡我学习到了 1.if语句的三目运算符(其实说白了也就是php里的三位运算符) 2.sleep函数 3.substring函数(其实和substr一样) 4.limit的灵活运用 5. Sta ...