我目前正在开发一个纯粹的HTML和JavaScript驱动的Web应用程序,该应用程序使用CORS来使用远程Web服务,但目前在IE 11发出GET请求时遇到了麻烦。有趣的是,我们在IE8 / 9/10中可以正常运行,而不仅仅是11。
问题是IE 11似乎超时,而不是等待服务器的响应。ajax调用很简单:
$.ajax(url, { dataType: 'json', complete: complete, type: 'GET', global: true, success: success, crossDomain: true, xhrFields: { withCredentials: true } });
在“网络”选项卡中,使用Fiddler,我可以看到IE从不发送请求。
请问有人有什么想法吗?
编辑 :我忘了提及我已经尝试过缓存:false。我还发现了一些非常奇怪的东西,如果我将开发工具中的文档模式从Edge切换到9,然后每次都可以再次调用,即使清除了IE并重新启动IE之后,无论缓存是true还是false,调用都可以。很奇怪 :\
IE以缓存闻名。确保没有收到缓存的响应。您可以将cache属性值设置为,false也可以将唯一的时间戳记添加到url,这样它就不会成为缓存的响应。您可以使用该$.now()方法来获得唯一的时间戳。
cache
false
$.now()
设置缓存属性
$.ajax(url, { dataType: 'json', cache : false, //Other things ... }
为网址添加唯一的时间戳
var url="somePage.php?"+$.now(); //Use this url now for making the ajax call
该$.now()方法是表达式返回的数字的简写(new Date).getTime()
(new Date).getTime()