IE浏览器下使用AJAX登陆接口请求缓存与登陆不了的问题解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IE浏览器下使用AJAX登陆接口请求缓存与登陆不了的问题解决相关的知识,希望对你有一定的参考价值。

问题: 在IE浏览器下面,登陆的时候老是登陆不上,但是打开控制台的时候再登陆却能登陆上。

分析: 通过抓包,发现,在不打开控制台的时候,少了一个接口的请求,却返回了改接口的返回信息,但是返回信息并不是我想要的,于是就怀疑是IE浏览器在AJAX请求的时候,并不是每次都有真正地请求到,而是在缓存中抓取上次的信息。

解决:

1、在调用接口上加上不定参数,使每次都发出新的请求

 

URL + ‘?v=‘+Math.random()

 

2、从异步与非异步的方式来解决,因为 $.ajax 请求默认是异步的,这样子可能会导致我还在登陆,还没成功,但是页面却执行了其他与登陆与否相关的操作。

这个时候就需要我们把登陆设为非异步的方式

把 async 设置为 false 则可以使 $.ajax 请求变为 非异步

$.ajax({
    async: false,
    type: ‘POST‘,
    data: {},
    url: ‘‘
})

 

于是完美地解决啦。

以上是关于IE浏览器下使用AJAX登陆接口请求缓存与登陆不了的问题解决的主要内容,如果未能解决你的问题,请参考以下文章

Ajax登陆,使用Spring Security缓存跳转到登陆前的链接

node.js怎么模拟浏览器执行ajax

ajax请求请求数据缓存问题分析以及解决方案

上不了网,校网登陆器登陆显示初始化socket环境失败猎豹浏览器中间出现图示图标,ie浏览器打不开

IE浏览器下AJAX缓存问题导致数据不更新的解决办法

IE浏览器下AJAX缓存问题导致数据不更新的解决办法