说明
下面这个例子是之前用php做仿SSO统一登录系统时写的。主要用来解决可直接使用用户名及密码post/get提交就完成登录的需求,当然也做了防autho授权登录和直接使用appkey对接登录的方式。下面的代码主要用于备忘
// 使用常规表单方式 进行get/post提交, 方便用于提交后直接可以登录目标网站的形式
//ajax使用contentType:'application/json'方式提交因为是异步的,只能获取返回值
//根据返回json,判断是否存在指定key键值
<form action='post.php' name='form1' id ='form1' method='get'>
<input name='user' value='admin'>
<input name='pwd' value='123456'>
<input type="hidden" id="model" value="2">id=model用于控制是否提交json格式数据
<input type='button' onclick='sub();' value='登录系统'>
</from>
<script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
<script>
function sub(){
var mo = document.getElementById(\'model\').value;
if(mo != 1){
document.form1.submit();
}else{
//读取表单数据并数组化---最终转换为json字符串
var formArray = $("#form1").serializeArray();
var dataArray = {};
$.each(formArray,function(){
if(dataArray[this.name]){
if(!dataArray[this.name].push){
dataArray[this.name] = [dataArray[this.name]];
}
dataArray[this.name].push(this.value || \'\');
}else{
dataArray[this.name] = this.value || \'\';
}
});
var data = JSON.stringify(dataArray);//转换成string数据,以便后台接收
//json字符串转换结束,用于下面ajax提交
alert(data);
$.ajax({
type: 'post',
contentType:'application/json',
url: 'post.php',
data: data,
success: function(data) {
alert(JSON.stringify(data));//处理返回数据
console.log(data);
if(data.hasOwnProperty("url")){ //判断返回的json数组中是否存在指定键值
alert("cun zai jian zhi");
console.log(data["url"]);
window.location.href= data["url"];
}else{
alert(\'返回数据无url地址\');
}
}
});
}
}
// sub();
</script>
最后编辑: admin 文档更新时间: 2021-03-16 21:50 作者:admin