javascript で POST する(3) – FireFox 対応

 以前、JavaScript で POST する方法を記事にしましたが、FireFox だとうまく行きませんでした。

以前の記事

 いろいろ試してみると、XMLHttpRequest で send が完了するまで待ってから reload しないとうまく動かないようです。JavaScript の定義部分を以下のように、イベントハンドラを使い、send が完了した後で reload するようにすれば、FireFox でもうまく動くようになりました。

<script>
  function post() {
    xhr = new XMLHttpRequest();
    xhr.open('POST', '#', true);
    xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
    xhr.onreadystatechange = function () {
      if(xhr.readyState === XMLHttpRequest.DONE) {
        location.reload(true);
      }
    }
    var request = "age=18";
    xhr.send(request);
  }
</script>

 この方法であれば、Chromium でも FireFox でも問題ないようです。テストページ も更新しました。

web サイト

Posted by sirius