JAVA码牛牛,程序员学习指南

前后端分离的项目,使用Ajax请求一般都出现跨域的问题。

跨域的时候所创建的session是不会被浏览器保存下来的。所以每次进行跨域请求时,服务器都认为不是同一个浏览器所发起的请求,session也会不一样。以下将介绍如何保证session一致。

前端Ajax请求:

    $.ajax({        url:url,                xhrFields: {           withCredentials: true        },        crossDomain: true,                success:function() {        },        error:function() {        }    });

后端构建一个拦截器,对需要跨域访问的request头部重写,如:

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {        HttpServletResponse response= (HttpServletResponse) servletResponse;        HttpServletRequest request=(HttpServletRequest)servletRequest;        response.setHeader("Access-Control-Allow-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");        response.setHeader("XDomainRequestAllowed","1");        filterChain.doFilter(servletRequest,servletResponse);    }

另外Spring boot的项目可以添加拦截配置,如:

    @Component    @Order(Ordered.HIGHEST_PRECEDENCE)    public class AuthCorsFilter extends CorsFilter {        public AuthCorsFilter() {            super(configurationSource());        }        private static UrlBasedCorsConfigurationSource configurationSource() {            CorsConfiguration config = new CorsConfiguration();            config.setAllowCredentials(true);            config.addAllowedOrigin("*");            config.addAllowedHeader("*");            config.addAllowedMethod("*");            config.setAllowCredentials(true);            UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();            source.registerCorsConfiguration("/**", config);            return source;        }    }

想学习更多Java知识,快关注我吧

ajax 请求_前端后分离Ajax跨域请求保证Session一致相关推荐

  1. corspost请求失败_记一次 CORS 跨域请求出现 OPTIONS 请求的问题及解决方法

    今天前后端在联调接口的时候,发生了跨域请求资源获取不到的问题. 首先说明下跨域问题的由来.引自HTTP 访问控制 的一段话: 当 Web 资源请求由其它域名或端口提供的资源时,会发起跨域 HTTP 请 ...

  2. 爬取斗图网图片,使用xpath格式来匹配内容,对请求伪装成浏览器, Referer 防跨域请求...

    6.21自我总结 一.爬取斗图网 1.摘要 使用xpath匹配规则查找对应信息文件将请求伪装成浏览器Referer 防跨域请求 2.爬取代码 #导入模块 import requests#爬取网址 ur ...

  3. ajax请求头cookies中传递sid,跨域请求单点登录,登录成功,但是在controller中获取的cookie与浏览器中不一致,请大神指点一二。^_^...

    跨域请求js代码: $.ajax({ type:"post", async:false, contentType : "application/x-www-form-ur ...

  4. 简单跨域请求和带预检的跨域请求

    受浏览器的同源策略限制,JavaSript只能请求本域内的资源.跨域资源共享(Cross-Origin Resource Sharing, CORS)是为解决Ajax技术难实现跨域问题而提出的一个规范 ...

  5. Day15(Js入门、jquery入门、ajax入门、前后端分离开发跨域问题、linux环境准备、jdk_tomcat环境搭建、docker介绍及应用(docker安装、基本命令、安装tomcat))

    js入门 js代码辅助 window–>preferences–>javaScript–>Content Assist .abcdefghijklmnopqrstuvwxyz alt ...

  6. 前端技巧:jsonp跨域请求json文件记录以及百度地图的省份和城市坐标在静态服务器上的处理

    目录 省份坐标json 获取省份坐标代码 拓展:获取城市坐标 获取城市坐标代码 自定义jonp及使用 1.用jsonp方式请求静态资源服务器上的json文件 首先将json文件用一个回调函数包裹起来, ...

  7. 谷歌插件开发ajax请求,Chrome扩展开发,跨域请求API

    起因 这次问题是从Btools更换获取数据方式开始的,因为B站收藏夹在前台页面返回的数据中删除了失效视频的封面和标题,导致原来的程序无法获取视频信息. 于是我就想如果请求收藏夹的API,是否可以获取这 ...

  8. ajax跨域请求原理,Ajax跨域请求的原理(图文教程)

    这篇文章主要为大家详细介绍了Ajax跨域请求的原理,Ajax怎么样做跨域请求?具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Ajax跨域请求的具体实现过程,供大家参考,具体内容 ...

  9. ajax+php跨域请求数据库,基于jQuery的ajax跨域请求,PHP作为服务器端代码

    ajax实现跨域请求有两种方式: 方法一:jsonp的方式 jsonp方式的关键点在客户请求以jsonp作为数据类型,服务器端接收jsonp的回调函数,并通过回调函数进行数据的传输.具体代码如下: 客 ...

最新文章

  1. 静态链表实现(A-B)+(B-A)【代码】
  2. iOS App上架流程
  3. java学习:Iterator数据加工厂
  4. 如何在Android手机上进行Google Map的开发。
  5. c语言顺序查找算法,c语言实现排序和查找所有算法
  6. C# 获取可执行文件路径的上上级目录的方法
  7. 欧拉函数 euler
  8. springboot+Mybatis-plue自动生成代码
  9. linux 进程suricata,开源USM之IDS suricata
  10. LVS调度算法权威讲解——官方文档翻译
  11. php解析视频_YY神曲视频PHP解析调用代码
  12. flexsim怎么设置传送带方向_Flexsim_编程常用代码
  13. Lenovo ServerGuide 10.4
  14. 和谐Froala editor编辑器
  15. 【AIS学习】12:AIS标准下载
  16. uniapp文件体积超过 500KB报错
  17. Eclipse连接Github出现not authorized
  18. 智能卡java_Java智能卡发送命令
  19. Linux 自带神器 logrotate 详解
  20. msp心形16个闪灯c语言程序,心形流水灯程序

热门文章

  1. Auto-Machine-Learning初探
  2. 机器学习 阴性集的选择 —— drug-target interactions (DTIs)
  3. 目前有没有好用的RNASeq的pipeline呢?
  4. A fuzzy Bruijn graph approach to long noisy reads assembly
  5. java ase 加密_java实现ase加密解密
  6. mysql的delete的底层实现_MySQL索引的底层实现
  7. windows10 中 安装 ffmpeg
  8. 大数据分布式集群搭建(9)
  9. html中js定义数组,javascript数组的定义及操作实例
  10. 散列表(Hash Table)