Jquery AJAX无法在IE 7/8上运行

我试图调试我的ajax get / post在IE 7/8中不起作用的原因

这是我的代码:

$.ajax({type: "POST", dataType:'html',url: "/places/set_member/add/",data: "place_id="+place_id , beforeSend: function() {$("Saving...").prependTo('body');}, success: function(){ $.ajax({type:"GET",url:url,success:function(html){$('div.place-list .ui-tabs-panel').html(html);},complete:function(){resetAddThis();}}) }, complete: function() { $('span.notice').fadeOut(500); $('span.notice').remove(); }}); 

现在这在FF Safari Win / Mac中运行良好,但在IE 7/8中没有

我下载了fiddler并观看了调用,该脚本应该向服务器发送数据,然后重新加载现在有新更新信息的HTML。 发生了什么事情是第一次调用得到一个错误500但是,然后重新加载html后,再次执行相同的操作,它将发送,200ms,所以它给出了它不保存的外观,它只做在第二次尝试。

有什么我做错了,还是我需要添加的东西? 这是一个php循环,因此该function被应用于页面上20-30项的同一链接。

IE缓存所有不是POST类型的ajax调用。 我发现最好让所有Ajax调用POST以避免IE执行此操作,即使您发布空数据也是如此。

或者你可以像@redsqaure在下面建议那样做:

$ .ajaxSetup({缓存:假})

如果您不需要将数据类型设置为HTML,则可以尝试此操作。

 $.ajax({ url: 'Enter URL' dataType: 'jsonp', type: 'get', success: function (data) { } }); 

IE缓存ajax调用。 确保在通话中包含随机数或随机字符串,例如&rand=[some randomly generated something]并再次尝试。

最后! 我解决了我的问题,这是因为“同源策略”而只是在IE中加注!:我只是将URL参数从‘http://mysite.com/api/’更改为‘/ api /’并且它作品!!!

希望对你们有些帮助!

我遇到了与jquery 2.0.2相同的问题。 我将jquery更改为1.8.1,Ajax在IE中完美运行。

在大多数浏览器中,您可以指定

 url: '' 

…对于jQuery ajax调用,这将发布到自己。

在IE中,您必须提供URL。

 url: '/relative/path/to/script'