跨域ajax 功能,Ajax 跨域单点登录

启动两个工程,端口号分别为 8075 和 8080,将新建 HTML 文件 sso.html 放到端口号为 8075 的工程下,访问http://localhost:8075/webroot/sso.html,登录成功后,在浏览器上新打开标签页,访问 8080 工程,自动登录成功。

2.1 环境准备

1)本文示例准备的两个工程分别为:本地工程,端口号为 8075

部署到 Tomcat 上的工程,端口号为 8080

Tomcat 服务器部署请参见:独立部署

2)启动两个工程。

2.2 新建 HTML 文件

1)新建 HTML 文件,代码如下所示:

注1:根据实际情况修改代码中的「访问 URL」、「用户名」、「密码」。

注2:内网环境中,下面代码引用的  jquery.min.js 文件无法生效,需下载 JS 文件到本地并修改对应的路径,具体步骤请参见:单点登录问题汇总 文档中的 2.4 节内容。HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

10.0单点登录示例

$(document).ready(function () {

$('#login').click(function () {

$.ajax({

url: 'http://localhost:8080/webroot/decision/login/cross/domain',

data: {'fine_username': '1', 'fine_password': '1', 'validity': -1},

dataType: 'jsonp',

callback: 'callback',

success: function (data) {

if(!data.errorCode) {

alert("登录成功");

} else{

alert("登录失败")

}

},

error: function () {

alert('登录失败');

}

});

});

$('#wb1').click(function () {

window.open('http://localhost:8080/webroot/decision/view/report?viewlet=demo/analytics/图表联动.cpt')

});

});

function setCookie(name, value) {

document.cookie = name + "=" + escape(value);

}

function getCookie(name) {

var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");

if (arr = document.cookie.match(reg)) {

return unescape(arr[2]);

} else {

return null;

}

}

点击我登录

点我访问GettingStarted.cpt

2)将 HTML 文件命名为sso.html,放到端口号为 8075 工程的%FR_HOME%/webapps/webroot文件夹下,如下图所示:

d2a3e838e41ba07a60508601f22674d1.png

2.3 关闭内容嗅探攻击防护按钮

2.3.1 原理

报错:

若不关闭「内容嗅探攻击防护」按钮,控制台会报错:跨源读取阻止(CORB)功能阻止了 MIME 类型为 text/plain 的跨源响应。

如下图所示:

b4a265cb4b6e9895e5ab2beb97795c4c.png

具体解释:

当服务端出现response.addHeader('X-Content-Type-Options', 'nosniff');安全相应头,且未指定Content-Type为 JavaScript 类型时,jsonp 请求跨域资源时变出现如上 CORB 或拒绝解析的问题。本文 ajax 单点登录就是用的 jsonp ,所以关闭「内容嗅探攻击防护」按钮可以关闭 nosniff 配置,但可能出现其他安全问题。

2.3.2 具体步骤

1)以管理员身份进入端口号为 8075 工程的平台,点击「管理系统>安全管理」,关闭「内容嗅探攻击防护」按钮,如下图所示:

59a5eed614d1b5788ea5a2b812b7718e.png

2)相同步骤关闭端口号为 8080 工程的「内容嗅探攻击防护」按钮。

2.4 效果查看

效果如下图所示:

71887f97ea3656df3e4309cbaf1be047.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值