• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:readyStateが4にならない原因)

readyStateが4にならない原因とは?

このQ&Aのポイント
  • apache2でAjaxの試しとしてスクリプトだけのhtmlファイルを作成し動作を確認した。
  • readyStateが2→アラートのOKを押す→一瞬1になり3→アラートのOKを押す→一瞬1になり0→アラートのOKを押すと1になった。
  • request.openで渡すURLを「http://localhost/a.php」から「a.php」に変更すると、一瞬1になり2→アラートのOKを押す→一瞬1になり0→アラートのOKを押すと1になった。なぜ4にならないのか?request.statusは全部0になっているようだ。

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

  • ベストアンサー
回答No.1

readyStateは4以外がエラーというわけではなく、通信中はその受信状態に応じて1~4を変動します。 4になっていると思いますが、document.write()のエラーではないでしょうか。 document.write()が使える条件、使えない条件を調べてみてください。

kiseki777
質問者

お礼

ご回答ありがとうございます。 document.write()は影響していなさそうです。 alertでも試してみましたが同じ結果になります。 先ほど気が付いたのですが、エラーの内容を勘違いしていたところがありました。 Error: readyState code is 2 Error: readyState code is 3 Error: status code is 0 Error: readyState code is 1 この順でエラーのアラートが表示されていました。 HTTP Readyが4以外のときは「Error: readyState code is」のエラーメッセージが必ずでる形にしてあるので、2番目までは正常だと思います。3番目はHTTP Readyが4で、status codeが0になっています。そして、なぜ一旦HTTP Readyが4になったのに4番目に再度試されているのかは不明ですが、status codeが0になったときは再度試すみたいな機能があるのでしょうか。 ローカルでサーバーを使っている以上、status codeが0になってしまうのでしょうか。 ブラウザはFirefoxを使っています。

すると、全ての回答が全文表示されます。

関連するQ&A