2011-07-20 12 views
0

ように私には、JavaScriptとjQueryのコードを持っている:それは、インターネットエクスプローラ(7,8,9)を除いてどこでも働いているInternet ExplorerのjQuery .post()関数の問題を解決するには?

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

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

}); 

。イメージはオペラ、ファイアフォックス、クロムで完全にリロードされますが、エクスプローラではリロードされません。

そして、私の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; 

         }); 

そして再び、これは、インターネットエクスプローラを除いてどこでも動作します。なにか提案を?

答えて

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ファイルに何のキャッシュを追加していない

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

は、ヘッダーを最初に設定する必要があるため、上記のコードは、最初の行であることを確認してください。

これは機能します。

+0

こんにちは、ありがとうございますが、それはまだインターネットエクスプローラで同じです。キャプチャ画像をリロードするバックボタンのための他の機能があるので、私のjavascriptに関する情報を更新しました。しかし、firefox、chrome、operaでは動作しますが、エクスプローラでは動作しません。何かアドバイス? – marian

+0

それはエクスプローラでちょうど起こるので、それは私を悩ます。他のブラウザは正常です。 – marian

+0

キャッシュに問題があるかもしれません。また、PHPでキャッシュを設定することもできませんが、私はこの投稿を更新してあなたが確信できるようにします –

関連する問題