单点登录报错,不能登录成功!
单点登录代码:
var username = cjkEncode(document.getElementById("login_username").value);
var password = cjkEncode(document.getElementById("login_password").value);
jQuery.ajax({
url:"http://192.168.70.70:8080/WebReport/ReportServer?op=fs_load&cmd=sso",//单点登录的报表服务器
dataType:"jsonp",//跨域采用jsonp方式
data:{"fr_username":username,"fr_password":password},
jsonp:"callback",
timeout:5000,//超时时间(单位:毫秒)
success:function(data) {
data = JSON.parse(data);
if (data.status === "success") {
//alert("success"); //登录成功
//document.getElementById("login_form").submit(); //登录成功提交表单,跳转到index.jsp这个登录成功页面
//window.location=data.url;//登录成功,直接跳转到数据决策系统页面
}
else if (data.status === "fail"){
//alert("report fail");//登录失败(用户名或密码错误)
//alert(username);
//alert(password);
}
},
error:function(){
//alert(" error"); // 登录失败(超时或服务器其他错误)
}
});
解决办法:
第一种办法:一定要在后台代码,返回数据的时候,指定返回的数据格式: (最好此方法)
context.Response.ContentType = "application/json";
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
第二种:
在单点登录代码中加入
success:function(data){ data = JSON.parse(data); // process data},