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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- その他(プログラミング・Web制作) pythonリストの特定の値を表示htmlで表示できない 2 2022/05/14 05:48
- その他(ブラウザ) グーの質問見ようとしたらブラウザ版で 3 2022/03/28 10:33
- Chrome(クローム) 【Google AndroidのChromeブラウザーでフォームに入力後に送信ボタンを押すと、400 1 2022/06/26 16:52
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- スペイン語 急にあるサイトが見れなくなりました。 6 2022/03/28 09:33
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数の内容を別functionに渡したい
-
JavascriptからPHPへのAjax通信...
-
要素内を常に一番下を表示させたい
-
Javascriptを使ってQRコード読...
-
Selenium4でボタンをクリックで...
-
SQLのmaxで求めた値を変数に代...
-
javascriptからのphpクラス...
-
.txtファイルの読み込み
-
FullCalendar の複数月表示につ...
-
パソコンで動くjavascriptがス...
-
変数にドットをいれることはか...
-
jquery,ajaxによるphp通信でnull
-
Googleマップに複数のピンを立...
-
jquery × php × mysql 非同期で...
-
AjaxでJSONを受信すると、文字...
-
Python: TypeError
-
フレーム内の要素へのXPATHはど...
-
JQueryで動的生成のスライダが...
-
グーグルストリートビューについて
-
jQueryのアコーディオン一番目...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tableのtr要素をドラッグ&ドロ...
-
readyStateが4にならない原因
-
JQueryのイーズインとイーズアウト
-
スライドを最後の画像で止めたい
-
Ajax.Requestで取得したHTMLソ...
-
Google Apps Scriptを利用した...
-
CSVファイルの文字列の表示につ...
-
Ajaxでの、任意の件数でページ...
-
JSONのデータから商品名の取得...
-
現在位置を取得するjavascript
-
Ajaxの結果のページングの方法
-
変数の内容を別functionに渡したい
-
【再質問】計算(入数*単価)...
-
Selenium4でボタンをクリックで...
-
Javascriptを使ってQRコード読...
-
JavascriptからPHPへのAjax通信...
-
IndexedDB を使ってファイルア...
-
同一ページ移動時ハンバーガー...
-
JavaScriptでtabindexの変更っ...
-
jQueryを使いformでsubmitした...
おすすめ情報