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", ...
随机推荐
- [机器学习] ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)
引言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归.逻辑回归.Softmax回归.神经网络和SVM等等,主要学习资料来自网上的免费课程和一些经典书籍,免费课 ...
- lua字符串
本文内容基于版本:Lua 5.3.0 概述 Lua字符串中的合法字符可以是任何的1字节数据,这包括了C语言中表示字符串结束的'\0'字符,也就是说Lua字符串在内部将以带长度的内存块的形式存储,存储的 ...
- [转] 职业规划:一个老鸟眼中“IT民工”的发展方向
IT行业“挣钱太容易”,“IT不像政府管房产这么严,想干嘛就干嘛,另外都跑到境外去上市,没干两年市值翻好多倍,利润比地产高出几十倍几千倍,我们投入10块钱赚1块钱,IT行业投入10块钱赚1000块钱, ...
- jquery+ashx checkbox 单选判断是否true 和 false 传值操作
示例图: html标签代码: <p></p> <label for="checkbox" style="float:left" & ...
- cvs history,CVS中查询目录下所有文件的提交记录
我们习惯用eclipse svn中查看一个目录下,甚至整个工程下,所有的文件的变更列表:操作为:右键工程 -> Team -> Show History. 最近在使用CVS,eclipse ...
- Freemarker-2.3.22 Demo - No03_使用map绑定多个参数
package No03_使用map绑定多个参数; import java.io.File; import java.io.FileOutputStream; import java.io.Outpu ...
- Rokid开发者社区skill之【历史上的今天】之简介+玩法+设计+实现+心得
Skill简介: 来源:好奇心.探索欲.趣味性: 资源:百度百科: 方式:实时获取,自动更新: 技能玩法: 想要进入历史上的今天这个skill,则对若琪说:若琪,打开历史上的今天. 想要了解某天的历史 ...
- C#通过“委托和事件”的方式实现进程监控并与“普通方式”对比
今天重新学习了一下观察者模式,对我的思路产生了启发.进程监控程序之前写过几个,这回换一种思路,改用委托和事件来实现.我已经用序号将关键的几步标注,方便大家理顺思路.代码如下: using System ...
- java 日期获取时间戳
SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss"); String dateS ...
- 细数JDK里的设计模式<转>
这也是篇老文了,相信很多人也看过.前面那些废话就不翻译了,直接切入正题吧~ 结构型模式: 适配器模式: 用来把一个接口转化成另一个接口. java.util.Arrays#asList() javax ...