如何解决Internet Explorer中jQuery .post()函数的问题?

时间:2011-07-20 17:05:38

标签: jquery internet-explorer

我有一个javascript和jquery代码,如:

$("#refreshimg").live('click',function(){

$.post('php/newsession.php');
$("#captchaimage").load('php/image_req.php');
return false;

});

除了Internet Explorer(7,8,9)外,它无处不在。图像完全重载在opera,firefox,chrome中,但不在资源管理器中。

我的HTML看起来像:

<div id="captchaimage"><img src="captcha/image.php?<?php echo time(); ?>" alt="Captcha image" width="132" height="26" align="left" /></div>

浏览器中的 .live() .post() .load() jQuery函数可能存在问题吗?< / p>

然后我在主文件的代码中有了:

$("#back_btn").click(function() {

                                         $.post('php/newsession.php');
                                         $("#captchaimage").load('php/image_req.php');

                                            return false;  

                        });

而且,除了互联网浏览器之外,这种方式无处不在。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您正在重新加载图片,但您不是在等待请求完成。所以你能做的就是

$(document).ready(function(){
$("#refreshimg").live('click',function(){

$.ajax({url: 'php/newsession.php', type: 'post', success: function() { $("#captchaimage").load('php/image_req.php?custom_param='+(new Date()).valueOf()); } });

return false;

  });
});

并在你的php文件中添加no-cache

 <?
  Header('Cache-Control: no-cache');
  Header('Pragma: no-cache');
  ?>

确保上面的代码位于第一行,因为首先需要设置标题。

这将有效。