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'