单点登录有关跨域的点

本文探讨了跨域问题的起因,由JavaScript的同源策略引起,并提出了几种解决方案,包括JSONP、设置HTTP头部允许跨域以及使用nginx反向代理。通过示例代码展示了如何在Spring中配置允许跨域,并指出JSONP仅支持GET请求的限制。最后,解释了如何利用nginx进行跨域请求的转发,以实现高效且安全的单点登录跨域处理。
摘要由CSDN通过智能技术生成

跨域问题出现的原因:js的同源问题导致的,跨域可以请求但是返回值不被浏览器解析。
解决思路:jsonp方式,把结果通过构造函数的方式把数据以get绑定到url后发送给浏览器,视图层在URL截取数据,动态构造展示数据。
在被跨的web层加允许跨域的http的head设置,造成跨域成功。
在ajax请求不跨域,到后端后端通过httpClient跨域间接实现跨域
利用nginx反向代理,实现跨域

一、在每个模块拦截请求校验token时,需要跨域访问认证中心,使用的时httpClient
这种方式产生了两次请求,效率低,但内部请求,抓包工具无法分析,安全。
注解方式:
二、在索要跨域的web层加
@CrossOrigin(origins = “http://domain2.com”, maxAge = 3600)
origins : 允许可访问的域列表
maxAge:准备响应前的缓存持续的最大时间(以秒为单位)。
代码方式:
response.addHeader(‘Access-Control-Allow-Origin:*’);//允许所有来源访问
response.addHeader(‘Access-Control-Allow-Method:POST,GET’);//允许访问的方式
在这里插入图片描述
三、ajax跨域可以用jsonp
jsonp 只支持get请求不支持post请求
用法:①dataType改为jsonp ②jsonp : “jsonpCallback”————发送到后端实际为http://a.a.com/a/FromServlet?userName=644064&jsonpCallback=jQueryxxx ③后端获取get请求中的jsonpCallback ④构造回调结构

$.ajax(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值