java session丢失_跨域造成session丢失
所以到现在都没有解决方案么。。
update
我解决了。后端是Java springboot,前端是angular,跨域json通信。
cors方式,配置一个corsfilter,代码如下:
package xxxxxx.component;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Created by skyADMIN on 16/7/4.
*/
@Component
public class CORSFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
response.setHeader("Access-Control-Allow-Credentials","true"); //是否支持cookie跨域
chain.doFilter(req, res);
}
public void init(FilterConfig filterConfig) {}
public void destroy() {}
}
这个配置在不少地方应该都能找到,不同的主要是两点:
1。response.setHeader("Access-Control-Allow-Credentials","true"); //是否支持cookie跨域
2。response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
首先,配置了allow-credentials之后,如果allow-origin设为*,跨域时会报错说因为允许credentials,origin不能设为通配*,那所以设为简单的某个domain也是可以的,这种写法应该就是达到了任意domain都可以的效果吧。
然后angular部分也要设定个东西,举个栗子~
angular.module('frontendApp')
.controller('MainCtrl', function ($scope, $http, $location) {
var action = 'islogin';
$http.get(apiUrl + action, {withCredentials: true}).then(function (response) {
console.log(response);
if (response.data === 0) {
$location.url('login');
}
})
});
恩就是这个$http.get(url, {withCredentials: true})。
ok就酱。
java session丢失_跨域造成session丢失相关推荐
- php 跨域 session,什么是跨域?session如何共享?PHP和Ajax跨域问题的解决方法 | IT小天博客个人技术博客...
什么是跨域? 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器施加的安全限制.所谓同源是指,域名,协议,端口均相同,只要有一个不同,就是跨域.http://www.xt ...
- 解决getJSON跨域登录Session丢失的问题
解决getJSON跨域登录Session丢失的问题 参考文章: (1)解决getJSON跨域登录Session丢失的问题 (2)https://www.cnblogs.com/linyechengwe ...
- PHP解决http和https跨域,php中http与https跨域共享session的解决方法
这篇文章主要介绍了http与https跨域共享session的解决方法,需要的朋友可以参考下 遇到了HTTP.HTTPS协议下session共享解决cookie失效的问题,这里提供一个临时解决办法. ...
- 干掉Session?这个跨域认证解决方案真的优雅
用户登录认证是 Web 应用中非常常见的一个业务,一般的流程是这样的: 客户端向服务器端发送用户名和密码 服务器端验证通过后,在当前会话(session)中保存相关数据,比如说登录时间.登录 IP 等 ...
- Djiango django跨域 cookie session
一.django跨域问题 1.什么时跨域 通常情况下,A网页访问B服务器资源时,满足以下三个条件其一就是跨域访问 1. 协议不同 2. 端口不同 3. 主机不同 2.django解决跨域 安装djan ...
- php跨域共享session
. $gb_DBHOSTname = "127.0.0.1"; //主机的名称或是IP地址 02 $gb_DBname = "dbname"; //数据库名称 ...
- 跨域共享session (实现http跳转https 共享session)
在网上找了很多,终于搞明白了,也行不是最好的办法,但确实非常使用的方法. 其中最重要的就是 设置session id 至 本地 cookies 当中, 采用如下方法: $currentSessionI ...
- java cookie 跨域读取_跨域读写Cookie
Cookie作用域 Cookie 在二级域名下是可以共享的,如www.a.com 和m.a.com 他们的Cookie 是可以共享的,这也是很多单点登录利用Cookie实现的原理,但是很多站点不是二级 ...
- java 跨域重定向_跨域解决以及重定向
前言 1.跨域的一般解决方式 1.1.配置拦截器 1.1.1.token在healer传递的时候,一定要这里配置 @Component @Slf4j public class CORSIntercep ...
最新文章
- glusterfs基本操作
- 如何搭建自己的 pip 本地 cache
- 够快云库, 加速企业信息化建设
- ruby array_Ruby中带有示例的Array.select方法
- java synchronized 静态_Java之Synchronized修饰实例方法和静态方法
- Oracle run leve,UNIX自动启动oracle
- 关于阈值化函数cvThreshold()
- 数据结构之基于Java的顺序列表实现
- python零基础入门五小时教学_五小时轻松入门Python
- 老徐FrankXuLei受邀为花旗银行讲授《微软WCF服务分布式开发与SOA架构设计课程》...
- 远程linux服务器中安装jupyter通过本地浏览器访问使用
- MSN QQ网页聊天代码
- SAP ABAP开发视频学习(视频教程)
- 如何优雅的对网页截取长图
- Bootstrap的Modal模态框取消时有多重阴影
- 观《当幸福来敲门》有感
- python3模拟登录知乎
- 洛谷:P6560 [SBCOI2020] 时光的流逝(博弈、拓扑序列)
- 在Adapter里子线程更新UI线程
- 求解Python 爬取百度翻译手机版{errno:997,from:zh,to:en,query:\u4eba\u751f\u82e6\u77ed}怎么办
热门文章
- 开辟与退出一个新的栈帧常用的汇编语言指令
- Python中的eval(),exec()以及其相关函数
- python基础教程:对象之间的交互
- Python运算符可不只有加减乘除
- Python文件操作中进行字符串替换(保存到新文件/当前文件)
- 设备服务器停止运行吗,服务器已停止响应是怎么回事
- 检测点是否在两条平行线段之间_解决最值问题的利器——垂线段最短
- 怎样使一排文字中间有间隔_超级间隔条在中空玻璃中的应用
- C/C++ linux 分享库源码网站收藏
- 【放置奇兵】英雄各属性介绍