2019独角兽企业重金招聘Python工程师标准>>>

Ajax跨域请求保证同一个session的问题

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

我们自己构建一个拦截器,对需要跨域访问的request头部重写

向下面这样:

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

HttpServletResponse res = (HttpServletResponse) servletResponse;

HttpServletRequest request=(HttpServletRequest)servletRequest;

res.setContentType("textml;charset=UTF-8");

res.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));

res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");

res.setHeader("Access-Control-Max-Age", "0");

res.setHeader("Access-Control-Allow-Headers", "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token");

res.setHeader("Access-Control-Allow-Credentials", "true");

res.setHeader("XDomainRequestAllowed","1");

filterChain.doFilter(servletRequest,servletResponse);

}

在ajax 请求是也要加相应的东西

$.ajax({

url:url,

//加上这句话

xhrFields: {

withCredentials: true

},

crossDomain: true,

success:function(result){

alert("test");

},

error:function(){

}

});

这样我们再跨域测试的时候,就会发现我们的sessionId是一样的了,这样就实现了跨域并且保证在同一个session下。

转载于:https://my.oschina.net/u/2458549/blog/1575278

ajax异步session值不唯一 总是改变 解决办法相关推荐

  1. Session莫名丢失的原因及解决办法[转载]

    Asp.net 默认配置下,Session莫名丢失的原因及解决办法 正常操作情况下Session会无故丢失.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成 ...

  2. “Emgu.CV.CvInvoke”的类型初始值设定项引发异常 解决办法

    "Emgu.CV.CvInvoke"的类型初始值设定项引发异常 解决办法 参考文章: (1)"Emgu.CV.CvInvoke"的类型初始值设定项引发异常 解决 ...

  3. c语言浮点数无效,深入C++浮点数无效值定义与判定的解决办法

    深入C++浮点数无效值定义与判定的解决办法 在实际计算中可能会出现浮点型的无效数据,格式化输出到文件中内容为1.79769e+308,输出到界面就是很大一串数据.这两种方式无论哪种在阅读和查找时就不是 ...

  4. vmware虚拟机ip地址自动改变解决办法

    vmware虚拟机ip地址自动改变解决办法 菜单栏编辑->虚拟网络编辑器 选择正在使用的连接模式 点击DHCP设置 将租用时间及最长租用时间调到63天(最大天数只能为63天) 菜单栏编辑-> ...

  5. ajax请求时提醒参数为空的解决办法

    1.ajax请求时提醒参数为空的解决办法: 我们要把js对象用stringify转成json,然后再加上:contentType: "application/json" var _ ...

  6. 提示“Your session has expired. Please log in.” 解决办法

    提示"Your session has expired. Please log in." 解决办法: Xcode -->Preferences---> accounts ...

  7. ajax打开新窗口被浏览器拦截的解决办法

    最近在做支付时发现打开支付窗口时被浏览器拦截了,百度了一下才发现是因为打开窗口前用ajax验证是否能支付,所以不是用户主动触发的打开ixin窗口,浏览器认为这样不安全,所以给拦截了. 解决办法一 先开 ...

  8. js文件中发送ajax请求,ulr路径不起作用的解决办法

    前言: 在写Python项目的时候,单独的js文件发送ajax请求,并不起效果并且提示路径错误 错误原因分析: {% url 'myadmin_updategoodsgrade' %} # 是模板中的 ...

  9. Ajax在IE浏览器会出现中文乱码解决办法

    在AJAX浏览器来进行发送数据时,一般它所默认的都是UTF-8的编码. Ajax在IE浏览器会出现中文乱码的情况!解决办法如下<script type="text/javascript ...

最新文章

  1. Camera噪声问题
  2. SpringMvc4中获取request、response对象的方法
  3. Linux环境安装canvas,npm install canvas简明指南
  4. NMS 非极大值抑制
  5. [HAOI2008][BZOJ1042] 硬币购物
  6. AgileConfig - 轻量级配置中心1.2.0发布,全新的UI
  7. const 修饰函数参数,返回值,函数体,保护数据
  8. MYSQL小函数大用途之-------FIND_IN_SET
  9. 李彦宏候选工程院院士;陌陌回应探探下架;拼多多回应“刷单”质疑 | 极客头条...
  10. Java基础之IO流
  11. CentOS 6.6下PXE+Kickstart无人值守安装操作系统
  12. 计算机网络 以太网 和令牌环网
  13. 全球首个航天大模型问世,文心秒补《富春山居图》,这是百度普惠AI的恒心...
  14. c语言对英文字母循环加密,RSA加密算法(C语言实现)
  15. 最详细的Extmail安装文档
  16. 迅雷离线下载 docker
  17. 4块硬盘掉线导致服务器崩溃解决过程
  18. 使用命令行——查看笔记本电池损耗程度
  19. 硬核数据处理笔记本推荐(2023版)
  20. 用qrcode生成微信支付二维码

热门文章

  1. sunplus8202V双无线游戏手柄设计
  2. 如何用VB编程实现关闭WINDOWS窗口?
  3. Linux操作系统下/etc/hosts文件
  4. Reddit大热,伯克利PPT带你丝滑入门机器学习:知识点全面覆盖,笔记可搭配食用...
  5. 小米首场开发者大会:宣布IoT开发者计划,联手百度提升AI能力
  6. 启动时间知多少?8款音视频类应用测评报告分析
  7. synchronized锁机制 之 代码块锁
  8. 解决Intellij IDEA 通过archetype创建Maven项目缓慢的问题
  9. CentOS下通过postfix使用自己的gmail邮箱发送邮件
  10. 如何在Windows下搭建Android开发环境