“Ajax请求后台,后台两次session不一致”问题解决

1.问题

请求后台验证码接口,获取验证码和验证码校验的接口,校验时总是获取不到数值,就是两次的SESSIONID不一样

导致前端验证码数据传到后台,却取不到后台存储的验证码,无法进行校验


图片.png

2.解决

注意请求验证码图片的域名要和请求校验的域名一样,比如,localhost127.0.0.1是不一样的

1)前端

在请求中加入一个withCredentials: true就行了,意思就是跨域带cookie请求
Angularjs请求示例

    $scope.firstnext = function() {
        $http({
            method: "get",
            url: 'http://localhost:8083/contrastcode?verification=' + $scope.identycode,
            headers: {},
            withCredentials: true //!跨域带cookies
        }).then(function(req) {
            $log.log(req.data)
            if(req.data.valid == true){
                 //do somethings
            }
        })
    }

2)后台跨域解决

@Configuration
public class CustomCORSConfiguration {
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*");
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedMethod("*");
        corsConfiguration.setAllowCredentials(true);
        return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig());
        return new CorsFilter(source);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,486评论 11 349
  • 什么是跨域? 2.) 资源嵌入:、、、等dom标签,还有样式中background:url()、@font-fac...
    电影里的梦i阅读 6,946评论 0 5
  • 1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined、Nul...
    极乐君阅读 10,996评论 0 106
  • 这几天的大单子把我压的够呛,天又热,我是女神和女汉子,哈哈!晚上6点多把事做完,今天改吃素,吃点葡萄和西瓜。
    KellyWei阅读 1,090评论 0 0
  • 昨天晚上不知道是做梦肚子疼,还是真的肚子疼,反正就好害怕。又一次梦到生娃了,各种恐慌! 宝宝啊,我不是嫌弃你是女娃...
    起昵称好难啊阅读 1,634评论 0 0

友情链接更多精彩内容