Как исправить проблему с функцией jQuery .post () в Internet Explorer? - PullRequest
0 голосов
/ 20 июля 2011

У меня есть код 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 в проводнике?

Тогда у меня есть код в основном файле:

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

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

                                            return false;  

                        });

И снова, это работает везде, кроме интернет-проводника. Любое предложение?

1 Ответ

2 голосов
/ 20 июля 2011

Вы перезагружаете изображение, но не ожидаете выполнения запроса.Итак, что вы можете сделать, это

$(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;

  });
});

, а также добавить no-cache в ваш php файл

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

, убедитесь, что приведенный выше код находится в первой строке, потому что заголовки должны бытьустановить первым.

и это будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...