精华内容
下载资源
问答
  • sessionid不能为空
    千次阅读
    2018-10-19 11:33:14

         先来说说遇到的问题,在java中写了两个方法,暂且称之为A方法,B方法。 A方法中往session中存session.setAttribute("phoneMa",ma);在A方法中是可以取到phoneMa=session.getAttribute("phoneMa")的值,但是在B方法中获取phoneMa的值 phoneMa= session.getAttribute("phoneMa")一直为null。 百思不得解,然后查看两个方法中的sessionId=session.getId()是否一致,发现真的不一致。 这样,就找到了问题的所在。找资料发现:因为跨域问题SSIONID每次请求都会变化。而我的后台也设置了跨域请求

         我的跨域源码是:

    public class CORSFilter implements Filter {
    
        public void init(FilterConfig filterConfig) throws ServletException {
    
        }
    
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
           //*表示允许所有域名跨域
            httpResponse.addHeader("Access-Control-Allow-Origin", "*");
            //允许的请求头类型
            httpResponse.addHeader("Access-Control-Allow-Headers",
                    "Origin, X-Requested-With, Content-Type, Accept");
            //允许跨域的Http方法
            httpResponse.addHeader("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE");
            filterChain.doFilter(servletRequest, servletResponse);
        }
    
        public void destroy() {
    
        }
    }
    

         doFilter代码修改之后:

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
        //*表示允许所有域名跨域
        httpResponse.addHeader("Access-Control-Allow-Origin", "http://127.0.0.1:8020");
        httpResponse.addHeader("Access-Control-Allow-Headers",
                "Origin, X-Requested-With, Content-Type, Accept");
        //允许跨域的Http方法
        httpResponse.addHeader("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE");
        httpResponse.addHeader("Access-Control-Max-Age", "0");
        httpResponse.addHeader("Access-Control-Allow-Credentials","true");
        httpResponse.addHeader("XDomainRequestAllowed","1");
        filterChain.doFilter(servletRequest, servletResponse);
    }
    

    此时还不算完,需要在前端ajax请求上也要加入响应的代码。

    xhrFields: {
         withCredentials: true
        },
    crossDomain: true,
    

    我的ajax请求是这样的:

    				$.ajax({
    						type: "post",						
    						url: IP + "member/sendCode",
    						//加上这句话
    						xhrFields: {
               					withCredentials: true
           					},
           					crossDomain: true,
    						data:{
    							phone:inphone
    						},
    						success: function(data) {												
    							console.log(JSON.stringify(data));	
    							if(data.code == 200){
    								
    								
    							}
    						}
    					});
    

    这样再测试的时候,sessionId值是一样的,也能获取session的值了。
    此文只作为笔记记录,可能会与其他大神写的内容雷同。 不喜勿喷!

    更多相关内容
  • 场景:登录时一直提示验证码错误 / 参数为空或者合法。经查询后,发现是Chrome浏览器cookie中无sessionid(没存上)。 解决办法: 谷歌浏览器地址栏输入:chrome://flags/,将 SameSite by default cookies、...

    场景:登录时一直提示验证码错误 / 参数为空或者不合法。经查询后,发现是Chrome浏览器cookie中无sessionid(没存上)。

    • 解决办法:

    谷歌浏览器地址栏输入:chrome://flags/,将 SameSite by default cookies、Cookies without SameSite must be secure两个选项设置为Disable

    可参考:https://www.lizenghai.com/archives/56035.html#i-2

    展开全文
  • 场景:早上上班起本地之后,登录时一直提示验证码错误 / 参数为空或者合法(另一个相同登录原理的项目)。 并且只有我mac 版的Chrome浏览器有问题,Safari都可以正常登录。另一台台式机的Windows的Chrome也可以...

    场景:早上上班起本地之后,登录时一直提示验证码错误 / 参数为空或者不合法(另一个相同登录原理的项目)。

    并且只有我mac 版的Chrome浏览器有问题,Safari都可以正常登录。另一台台式机的Windows的Chrome也可以(可能只是单纯的浏览器问题,跟系统无关)

    经查询后,发现是Chrome浏览器cookie中无sessionid(没存上)。

    • 解决办法:

    谷歌浏览器地址栏输入:chrome://flags/,将 SameSite by default cookies、Cookies without SameSite must be secure两个选项设置为Disable

     

    可参考:https://www.lizenghai.com/archives/56035.html#i-2

    展开全文
  • 根据浏览器的保护规则,跨域的时候我们创建的sessionId是不会被浏览器保存下来的,这样,当我们在进行跨域访问的时候,我们的sessionId就不会被保存下来,也就是说,每一次的请求,服务器就会以为是一个新的人,而...

    根据浏览器的保护规则,跨域的时候我们创建的sessionId是不会被浏览器保存下来的,这样,当我们在进行跨域访问的时候,我们的sessionId就不会被保存下来,也就是说,每一次的请求,服务器就会以为是一个新的人,而不是同一个人,为了解决这样的办法,下面这种方法可以解决这种跨域的办法。

    在ajax 请求要加配置

    	$.ajax({
    		url:url,
    		//加上 xhrFields及crossDomain
    		xhrFields: {
    			//允许带上凭据
    	        withCredentials: true
    		},
            crossDomain: true,
            //以上
    		success:function(result){
    			alert("test");
    		},
    		error:function(){
    		}
    	});
    

    关于 withCredentials

    withCredentials:
    默认情况下,跨源请求不提供凭据(cookie、HTTP认证及客户端SSL证明等)。通过将withCredentials属性设置为true,可以指定某个请求应该发送凭据。如果服务器接收带凭据的请求,会用下面的HTTP头部来响应。

    “Access-Control-Allow-Credentials: true”

    如果发送的是带凭据的请求,但服务器的相应中没有包含上面这个头部,那么浏览器就不会把相应交给JavaScript(于是,responseText中将是空字符串,status的值为0,而且会调用onerror()事件处理程序)。另外,服务器还可以在Preflight响应中发送这个HTTP头部,表示允许源发送带凭据的请求。

    支持withCredentials属性的浏览器有Firefox 3.5+、Safari 4+和Chrome。IE10及更早版本都不支持。
    同时

    注意

    在添加基本的允许跨域响应头之后
    需要添加 Access-Allow-Credentials:true
    另外由于谷歌的安全策略
    当withCredentials 为 true 时
    ResponseHeader中的 Access-Allow-Origin 不能使用通配符 ‘*’
    否则会提示

    A wildcard ‘*’ cannot be used in the ‘Access-Control-Allow-Origin’ header when the credentials flag is true. Origin ‘http://url’ is therefore not allowed access.

    其他浏览器待测试


    如果我的文章有帮上什么忙并且您也愿意赏个脸 就扫码领个红包吧(~ ̄▽ ̄)~

    在这里插入图片描述

    展开全文
  • Java 后台设置session成功,获取为空

    千次阅读 2020-04-24 16:21:54
    Java 后台设置session成功,获取为空 cookie secure 当服务器使用https时,容易出现漏洞SSL cookie without secure flag set,敏感cookie这时就需要打开cookie secure,服务器端设置cookie的时候,可以指定 secure ...
  • 前言: 在开发过程中遇到这么一个问题,让我花了一个下午的大好时光才解决。但是解决玩之后,发现那么的容易。就是查找资料的时候很费劲。...在验证码接口中我用session保存验证码,在登录接口中我从session取出...
  • 在昨天我在写代码的过程中出现了一个BUG,是以为上下的SessionID不一致,导致我不能精准地获取到我上面存在Session。 这个BUG我找了好久都没找出来,后来在老师的帮助下解决了这个问题。 原因: 上面的的...
  • 框架中session为空的解决办法

    千次阅读 2008-07-20 11:57:00
    公司要给一个老的的asp网站加一些功能,开始我知道是asp的网站用...加密又懒了的搞,只好让用户登录两次了,可是发现asp.net的页面登录后session到,在框架中是正常的,查了很久,发现了原因: 【Iframe丢
  • 获取sessionID的步骤

    千次阅读 2020-08-15 10:22:42
    String str = String.valueOf(value); 支付串判断null的方法,要加双引号 " " String str = String.valueOf(value); `在这里插入代码片` if ...StringUtils.isNotBlank(str)是判断为空NULL的方法 在这里
  • 前言 ...而这个机制就是Session...我们在开发过程中,因需要验证登录时使用的验证码,会在服务端生成一个SessionId与当时请求得到的验证码,放到redis上,再把SessionId返回存放到客户端上,作为该用户的一个凭证。...
  • axios请求中session为空问题

    千次阅读 2019-10-21 21:16:51
    vue的axios请求,获取到的服务端session为空 验证码保存在session中,但是存在跨域请求,session不一致问题(这个问题困扰了一天) 起因:http是无状态的,因此我们通常需要用到cookie以及session来保存状态,...
  • 浏览器访问服务器,就如同打电话,浏览器A给服务器发送请求,访问web程序,该次会话就开始,其中不管浏览器发送了多少请求 ,都一次会话,直到浏览器关闭,本次会话结束。 2.cookies如何保持会话,它的工作流程?...
  • 跨域访问sessionid不一致问题

    万次阅读 多人点赞 2017-07-02 19:09:54
    在开发过程中遇到这么一个问题,让我花了一个下午的大好时光才解决。但是解决玩之后,发现那么的容易。就是查找资料的时候很费劲。...在验证码接口中我用session保存验证码,在登录接口中我从session取出验证码进行校验
  • 微信小程序wx.request() session为空

    千次阅读 2018-08-05 23:07:36
    问题:微信小程序wx.request() session为空 在微信小程序开发中,由wx.request()发起的每次请求对于服务端来说都是不同的一次会话,微信小程序不会把session信息带回服务端,即对应服务端不同的session,由于...
  • 2.要是想几个页面共同使用一个session,那么这几个页面必须有一个关联文件,才能够获取到同一个session_id,这样才能定到唯一的那个session上面,所以在项目中,最好把所有的公共配置写在一php文件内,比如数据库...
  • Session为空的一种原因

    千次阅读 2013-06-26 15:46:23
    在维护一份比较老的代码,想改ajax调用,然后就添加了一个一般处理程序文件,也就是以.ashx结尾的文件,一切都正常,但发现session一直为空,很奇怪 基本的代码如下: public class ...
  • JavaWeb - Cookie、Session、SessionId 详解

    千次阅读 2018-10-16 11:28:55
    一、概述 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。...本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能Session。 二、Cookie 1.1 Cook...
  • 判断用户登录的session是否存在.doc

    千次阅读 2021-03-09 07:07:41
    // 对LoginAction做该项拦截 if (action instanceof LoginAction) { System.out.println("exit check login, because this is login action."); return actionInvocation.invoke(); } // 确认Session中是否存在...
  • 原文转自:http://www.tqcto.com/article/code/295299.html我们都知道普通的文件上传是通过表单进行文件上传的,还不能达到异步上传的目的。通过使用某些技术手段,比如jquery form.js可以达到异步上传的目的,但最...
  • 把系统升级成了6.0发现了之前设置session没有问题,然后再6.0下面就不能使用了经过仔细研究终于找到了原因1.第一中间件全局必须是开启session 就是在你的app应用目录下面的middleware 里面 ...
  • asp.net中通过代码来重置sessionid

    千次阅读 2018-05-27 11:16:25
    可能很多人认为,在重启浏览器的情况下sessionid是不会改变的,其实可以通过代码来重置sessionid,分享一下~~吼吼:ASP.NET 会话状态是一种允许您存储服务器端、特定于用户的数据的技术。Web 应用程序可以使用这些...
  • 从debug图片上也看到maxInactiveInterval过期时间设置1800秒,可能是过期的原因,过期后sessionId也就可能相同;当在网上参考了一篇关于session失效的帖子 我有点感觉了,之前我设置过做过session的钝化和...
  • 今天上午将一个数据存在一个方法中,再调用另外一个接口取出session中的值时,后端直接给我输出了一个空值:null。...session你可以理解就是一个小型数据库(有点牵强),它可以存放用户存入的键值对的
  • springcloud微服务集群session不一致问题。使用spring-session和redis解决springcloud的session不一致问题。
  • 明明设置了session,就只有在filter中取到,就很邪门。 查了很久解决办法,都没效果,知道我看到了这个兄弟写的: https://blog.csdn.net/a1029573879a/article/details/79105802 我抱着试试看的心态去查看了一下...
  • sessionID与cookie

    千次阅读 2016-06-11 11:14:54
    一、cookie机制和session机制的区别 ************************************************************************************* 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在...
  • if (StringUtils.isEmpty(username)) { throw new AccountException("用户名不能为空"); } if (StringUtils.isEmpty(password)) { throw new AccountException("密码不能为空"); } UserExample userExample = new ...
  • postman获取session得值

    千次阅读 2020-06-04 19:53:51
    问题:postman获取session得值导致request.getSession().getAttribute(“xxx”)为空 解决方式 第一步:登陆后F12,打开application打开cookie,记得要刷新 第二步:把JSESSIONID得值复制到postman, 第三步:...
  • 记一次session获取为空的异常处理

    千次阅读 2019-09-14 18:27:26
    原本服务器端是单机tomcat运行,接口端获取请求响应的cookie中的jsessionid值作为以后请求的cookie,这样就可以使用session了 将服务器端升级成分布式的,使用hazelcast做缓存并保存session,这时候接口端请求获取...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 127,592
精华内容 51,036
关键字:

sessionid不能为空