
apache2でAjaxの試しとして下記スクリプトだけのhtmlファイル(http://localhost/newfile.html)を
作り動作を確認してみました(空白部分は全角になっています)。すると最後の部分の
alert("Error: readyState code is " + request.readyState);で
2→アラートのOKを押す→一瞬1になり3→アラートのOKを押す→一瞬1になり0→アラートのOKを押すと1になりました。そしてコンソールには
------------------------------------------------
GET http://localhost/a.php 200 OK 60ms
Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)
request.send(url);
------------------------------------------------
といったエラー表示がでてしまいます。
また、request.openで渡すURLの「http://localhost/a.php」を「a.php」にすると、
一瞬1になり2→アラートのOKを押す→一瞬1になり0→アラートのOKを押すと1
になります。なぜ4にならないのでしょうか。
request.statusは全部0になっているようです。
<script language="javascript" type="text/javascript">
var request = false;
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}
if (!request)
alert("Error initializing XMLHttpRequest!");
window.onload = getCustomerInfo;
function getCustomerInfo() {
var url = "test";
request.open("GET", "http://localhost/a.php", true);
request.onreadystatechange = updatePage;
request.send(url);
}
function updatePage() {
if (request.readyState == 4){
if(request.status == 200){
var response = request.responseText;
document.write(response);
}else
if (request.status == 404){
alert("Request URL does not exist");
}else{
alert("Error: status code is " + request.status);
}
}else{
alert("Error: readyState code is " + request.readyState);
}
}
</script>
No.1ベストアンサー
- 回答日時:
readyStateは4以外がエラーというわけではなく、通信中はその受信状態に応じて1~4を変動します。
4になっていると思いますが、document.write()のエラーではないでしょうか。
document.write()が使える条件、使えない条件を調べてみてください。
ご回答ありがとうございます。
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が見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
1枚の画像をクリックすると複数...
-
PDFを(htmlのように)無限に縦...
-
【for文】アスタリスクと$で図...
-
C言語のflagの使い方が分かりま...
-
GASでスプレッドシートの一番上...
-
ダブルクリックと2回クリックの...
-
Base64に変換したHTMLの<script...
-
富士通のオフコンの部品交換
-
落として画面割れても使っても...
-
正規表現で、特定の文字列を含...
-
これってなんの電話かわかりま...
-
入力フォームの値をQRコードで...
-
時間表示で0:48:17と入力すると...
-
VBA コンボボックスの値をスピ...
-
b75h2-m2 biosアップデートした...
-
php コールバック関数
-
ナイトボットのAliasについて
-
VBAでクイズゲームの作り方
-
以下のURL入れますか?皆さんは↓
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
readyStateが4にならない原因
-
スライドを最後の画像で止めたい
-
tableのtr要素をドラッグ&ドロ...
-
ページ内リンクで#などのアンカ...
-
Javascriptを使ってQRコード読...
-
SQLのmaxで求めた値を変数に代...
-
JavascriptからPHPへのAjax通信...
-
JavaScriptでtabindexの変更っ...
-
インラインフレームを自動更新...
-
jQuery を外部ファイルから呼び...
-
FullCalendar の複数月表示につ...
-
パソコンで動くjavascriptがス...
-
Ajaxで文字化けしてしまいます
-
複数対応できるチェックボック...
-
同一ページ移動時ハンバーガー...
-
文字列の操作
-
jQuery 複数のライブラリーを表示
-
Selenium Basicの件
-
カンマ区切りのデータを配列に...
-
jQueryで外部テキストファイル...
おすすめ情報