今天发现,当使用Ajax请求时,如果后台进行重定向到其他页面时是无法成功的,只能在浏览器地址栏输入才能够实现重定向。

Ajax默认就是不支持重定向的,它是局部刷新,不重新加载页面。

在后端的逻辑里面加上如下:

httpResponse.addHeader("REDIRECT", "REDIRECT");//告诉ajax这是重定向
httpResponse.addHeader("CONTEXTPATH", tokenUrl);//重定向地址

在前端的逻辑里面加上如下:

$.ajaxSetup({
        complete : function(XMLHttpRequest, textStatus) {    
        // 通过XMLHttpRequest取得响应头,REDIRECT      
        var redirect = XMLHttpRequest.getResponseHeader("REDIRECT");//若HEADER中含有REDIRECT说明后端想重定向    
        alert(redirect);
        if (redirect == "REDIRECT") {  
            var win = window;      
            while (win != win.top){    
                win = win.top;    
            win.location.href= XMLHttpRequest.getResponseHeader("CONTEXTPATH");
    });

XMLHttpRequest.getResponseHeader(“XXX”),通过CORS方式解决的ajax跨域,是获取不到请求头的。getResponseHeader的值一直为空。
要通过Access-Control-Expose-Headers来设置响应头的白名单。
httpResponse.addHeader(“Access-Control-Expose-Headers”, “REDIRECT,CONTEXTPATH”);将想要传递的字段设置一下。才能获取到值。

问题:今天发现,当使用Ajax请求时,如果后台进行重定向到其他页面时是无法成功的,只能在浏览器地址栏输入才能够实现重定向。原因:Ajax默认就是不支持重定向的,它是局部刷新,不重新加载页面。...
在实际项目中对SpringData的各种使用相当多,简单的增删改查SpringData提供了现成的方法,一些复杂的,我们可以在接口方法写And,Not等关键字来搞定,想写原生SQL,CQL(Neo4j),QueryDSL(Elasticsearch)的,直接使用@Query(“……”)注解搞定,真的是方便到不行!本篇博客不打算讲SpringData如何使用,不同的模块(JPA,Neo4j….)使用也略不相同,但SpringData的排序Sort和分页Pageable接口都是差不多的,所以带大家搞明白搞明白SpringData的排序和分页是如何使用的。SpringData的任务是为数据访问提供一
解析 JSON 有效负载并将请求重定向到不同服务器的高性能 Web 服务器。 应用程序接口 可以使用非常简单的 API 在您的代码中使用 JSON 过滤器。 首先本地安装: 首先运行npm install以获取所有依赖项: $ npm install 或者添加到package.json的依赖项。 然后从您的代码启动过滤器,例如: var jsonFilter = require('json-filter'); var options = { port: 8080, destination: 'localhost:55500', passRequest: function(message) // process request return true; passResponse
SpringBoot是一款基于Spring框架的开发框架,而Spring-data-JPA是在Hibernate的基础上实现JPA规范的ORM框架。使用SpringBoot和Spring-data-jpa进行分页查询可以大大简化编码流程并提高开发效率。 在使用Spring-data-jpa进行分页查询时,需要遵循以下步骤: 在pom.xml文件中加入spring-boot-starter-data-jpa依赖,使得项目可以使用Spring-data-jpa框架对数据库进行操作。 手动创建实体类 手动创建一个对应数据表的实体类,并在实体类上使用@Entity注解标记该类是一个实体类,@Table注解指定该实体类映射的数据表名。 创建Repository接口 创建一个Repository接口,继承自JpaRepository或者PagingAndSortingRepository,这样就可以使用框架提供的一些默认实现方法,例如findAll、save等。同时,也可以定义一些自定义的查询方法,例如findAllByName(String name, Pageable pag
项目场景: 微信扫码登录时,扫描完成需要跳转到首页面,为了避免跨域问题,需要我们提供携带了token值的Url链接给前端,但是第三方提供的callback回调接口如何让将token值返回给前端呢 问题描述: 扫描二维码,根据获取到的用户信息生成对应的token值,在每次页面跳转时都要带着这个token值,由于二维码页面是微信第三方提供给我们的页面,因此回调方法的token值不知道返回给哪个前端页面,这就导致前端无法判断我们何时扫描过了这个二维码。 解决方案: 我们知道在微信登录获取二维码时,出现了跨
本系统与门户系统单点登录时候,需要重定向到门户系统的登录页面,可是如果长时间没有操作的话,session会话失效,就需要跳转到登录页面。 所以在使用response.sendRedirect("...")重定向URL后,在前段页面就会报 跨域问题Access to XMLHttpRequest'*'from origin '*' has been block...
首先pagehelper分页,确实很好用也很方便,但是jpa用pagehelper分页很难,反正我还没有找到很好用的措施,因为jpa有自己的分页工具类pageable。 所以jpa分页用pageable,mybatis分页用pagehelper,以下分享两种方法!! 1.JPA分页(使用pageable) Controller控制层 package com.gxuwz.late.controller; import com.gxuwz.late.bean.Record; import com.g
<form action="<%=request.getContextPath()%>/login_do" method="post"> 用户名:<input type="text" name="username"/><br> 密码:<input type="password" name="p...
response.sendRedirect 是一种用于重定向的方法,它可以将用户的浏览器重定向到另一个页面。使用方法如下: response.sendRedirect("URL"); 其中 URL 是要重定向到的页面的地址。 如: response.sendRedirect("https://www.google.com"); 该语句将重定向到谷歌首页