• ベストアンサー

クッキーが邪魔をする

AjaxとCGI(Perl)は初心者のものです。 Ajaxを使ってCGIにデータを送信し、TXTを書き換えるのを作りました。 しかし、書き換えたTXTをAjaxで読み取ると、書き換える前のままなのです。 TXTを開いてみると更新されていて、 それを開いてから出ないと、HTMLに反映されません>< 「HTML」⇒⇒(1)⇒⇒「CGI」⇒⇒(2)⇒⇒「TXT」  ↓                        ↑  ⇒⇒⇒⇒⇒⇒⇒⇒(3)⇒⇒⇒⇒⇒⇒⇒↑ (1)データをAjaxで送信 (2)CGIを使って書き換え (3)AjaxでTXTの内容を読み取り 上の(3)で、古いデータが引き出されます。 どなたか分かる方がいましたら、お助けください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#84373
noname#84373
回答No.2

キャッシュが効いていると推測。 ダミーの数値をつけて呼び出す var dmy = (new Date).getTime(); パラメーターを送るさいに、 '&dmy='+dmy を最後に付け加える 呼び出されるCGI側ではその数値は無視してOK!

kura07
質問者

お礼

まさにこれでした! ?のあとに意味の無い情報を加えて、ブラウザにもう一度読み取らせるのですね。 自分のプログラムでは「..."?a="+Math.random()」という風にしておきました。 ありがとうございました。

その他の回答 (1)

noname#94983
noname#94983
回答No.1

(1)データをAjaxで送信 (2)CGIを使って書き換え (3)AjaxでTXTの内容を読み取り これは、そのまま続けて実行しているということはないだろうか。 (1)~(2)が完了した後に(3)を実行しているようになっているだろうか。(1),(2)が実行されてそのまま(3)を実行しても、まだそのときには(2)が完了していないのかも知れない。そのへんは問題ないのだろうか。

kura07
質問者

お礼

回等ありがとうございます。 確認したところ、何秒たっても反映されないので、 その辺は問題ないようです。