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", ...
随机推荐
- 【Android】7.8 MyDemos项目的结构和主界面相关代码
分类:C#.Android.VS2015: 创建日期:2016-02-17 一.简介 上一讲已经说过,系统升级为Win10后,重新创建了一个新的项目:MyDemos,并把前7章合并到了这个项目中,这次 ...
- 【Ubuntu】用户切换到root
出于安全考虑,默认时 Ubuntu 的 root 用户时没有固定密码的,它的密码是随机产生并且动态改变的,貌似是每5分钟改变一次,所以用 su(switch user) 是不可以的,因为我们不知道 r ...
- Cocos2d-x和时间有关的代码
用cocos2d-x获取系统时间,格式为年月日时分秒: void GetTime(float dt) { struct tm *tm; #if (CC_TARGET_PLATFORM == CC_PL ...
- centos7 ping: www.baidu.com: Name or service not known
[root@www ~]# ping www.baidu.com ping: www.baidu.com: Name or service not known [root@www ~]# 1.网络配置 ...
- vue前端导出zip包
1. npm install jszip /npm install script-loader / npm install file-saver 2.功能代码 require('script-loa ...
- Linux Jenkins配置Git
1.卸载Centos自带的git1.7.1:通过git –version查看系统带的版本,Centos应该自带的是git版本是1.7.1 终端输入:yum remove git 2.安装所需软件包 终 ...
- Eclipse中直接操作本地文件系统
你是不是有时候觉得在Eclipse和windows资源管理器(也就是咱平时用的文件浏览器)之间切换很麻烦? Eclipse中也提供了本地文件系统浏览功能,在里面你也可以方便地进行各种文件操作 在Ecl ...
- LeetCode: Count and Say 解题报告
Count and Say The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, ...
- selinux开关
状态查看 /usr/sbin/sestatus -v 临时打开 setenforce 1 #设置SELinux 成为enforcing模式 临时关闭 setenforce 0 #设置SELinux 成 ...
- 基于css3炫酷页面加载动画特效代码
基于CSS3实现35个动画SVG图标.这是一款基于jQuery+CSS3实现的SVG图标动画代码.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class=&qu ...