
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ランキング
-
readyStateが4にならない原因
-
Win11 へのRufus と レジストリ...
-
jQuery を外部ファイルから呼び...
-
JavaScriptでtabindexの変更っ...
-
SQLのmaxで求めた値を変数に代...
-
jQueryで複数あるUL要素の最後...
-
jquery ボタンでoff on
-
Javascriptを使ってQRコード読...
-
カンマ区切りのデータを配列に...
-
FullCalendar の複数月表示につ...
-
変数にドットをいれることはか...
-
Doctrineのjoinについて
-
アコーディオンで多階層のメニ...
-
画面上で、マウスに反応するス...
-
同一ページ移動時ハンバーガー...
-
jQueryのアコーディオンメニュ...
-
サイトでタブをスライドで切り...
-
ajax + PHPによるエラーの返し...
-
アコーディオンメニューの最初...
-
jqueryで作ったアコーディオン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スライドを最後の画像で止めたい
-
readyStateが4にならない原因
-
tableのtr要素をドラッグ&ドロ...
-
ページ内リンクで#などのアンカ...
-
Ajax.Updater で受けたHTML中の...
-
appleのトップのニュースティッ...
-
【再質問】計算(入数*単価)...
-
Ajaxでの、任意の件数でページ...
-
jQuery 複雑なswitch文を作りたい
-
変数の内容を別functionに渡したい
-
CSVファイルの文字列の表示につ...
-
Ajaxの評価プログラムについて
-
現在位置を取得するjavascript
-
moment.js
-
Yahoo!ウィジェットのgetElemen...
-
onloadで動かない<DHTML+AJAXア...
-
Win11 へのRufus と レジストリ...
-
Doctrineのjoinについて
-
JavaScriptでtabindexの変更っ...
-
Javascriptを使ってQRコード読...
おすすめ情報