$.ajax()が動かない!
こんにちは、さのです。
先輩からアドバイスいただきまして、軽い内容のものも挟んでいこうと思います。 昨夜、JQueryのajax()が思い通りの動きをしなかったのでその件について。
やりたかったこと
setInteval()メソッドを使用して、1分おきにサーバーのデータにアクセス。
データに変更があればsubmitする。
そのコードが以下。
var type; $(function(){ type = /*[[${type}]]*/ null; setInterval("check", 60000); }); function check(){ $.ajax({url:"/check", type:"GET", dataType:"text", success: function(data){ if(data != type){ $("#form").submit(); } } }); }
Thymeleafというテンプレートエンジンを利用して、画面ロード時にtypeを取得。
$.ajax()メソッドで取得したdataがtypeと異なればsubmitする。
ちなみにサーバー側は以下。
@Controller @RequestMapping("/") public class Controller { @RequestMapping(value = "check", method = RequestMethod.GET) @ResponseBody private String check(){ String type; //判定処理 return type; } }
Chromeではうまくいきましたが、Android端末だと1回変更を認識したきりそれっきり。
どうやらキャッシュを取っていてサーバーと通信せずに値を勝手に返していたようです。
まったく、さぼらんといてほしいですね。
キャッシュを取らないように設定し無事解決。
function check(){ $.ajax({url:"/check", type:"GET", dataType:"text", cache:false, success: function(data){ if(data != type){ $("#form").submit(); } } }); }