さて、私はAJAXコードをテストして、この本のサンプル例を実行しようとしています:
AJAX と PHP 作成者: Audra Hendrix; ボグダン・ブリンザレア; クリスティアン・ダリー
現在、3 つのファイルがあります。
1) インデックス.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>AJAX with PHP, 2nd Edition: Quickstart</title>
<script type="text/javascript" src="quickstart.js"></script>
</head>
<body onload='process()'>
Server wants to know your name:
<input type="text" id="myName" />
<div id="divMessage" />
</body>
</html>
2) クイックスタート.js
var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject() {
var xmlHttp;
if(window.ActiveXObject) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
xmlHttp = false;
}
}
else
{
try {
xmlHttp = new XMLHttpRequest();
}
catch (e) {
xmlHttp = false;
}
}
if (!xmlHttp)
alert("Error creating the XMLHttpRequest object.");
else
return xmlHttp;
}
function process(){
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
name = encodeURIComponent(
document.getElementById("myName").value);
xmlHttp.open("GET", "quickstart.php?name=" + name, true);
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(null);
}
else
setTimeout('process()', 1000);
}
function handleServerResponse() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
xmlResponse = xmlHttp.responseXML;
xmlDocumentElement = xmlResponse.documentElement;
helloMessage = xmlDocumentElement.firstChild.data;
document.getElementById("divMessage").innerHTML =
'<i>' + helloMessage
+ '</i>';
setTimeout('process()', 1000);
}
else {
alert("There was a problem accessing the server: " +
xmlHttp.statusText);
}
}
}
3) クイックスタート.php
<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
echo '<response>';
$name = $_GET['name'];
$userNames = array('YODA', 'AUDRA', 'BOGDAN', 'CRISTIAN');
if (in_array(strtoupper($name), $userNames))
echo 'Hello, master ' . htmlentities($name) . '!';
else if (trim($name) == '')
echo 'Stranger, please tell me your name!';
else
echo htmlentities($name) . ', I don\'t know you!';
echo '</response>';
?>
しかし、同じコードをサイトにアップロードすると、同じコードが問題を示しています: 000Webhost.com
私は3つの異なるブラウザで試しました:
1) Google Chrome にエラーは表示されませんが、コードも実行されていません。
2) FireFox はこのエラーを次のように表示しています: XML 解析エラー: ドキュメント要素の後のジャンク 場所: http://flavorsofsoul.site88.net/ajax/quickstart/quickstart.php?name=行番号 3、列 1:
3) そして IE8 はこれを示しています: Webpage error details
メッセージ: オブジェクトが必要行: 65 文字: 7 コード: 0 URI: http://flavorsofsoul.site88.net/ajax/quickstart/quickstart.js
インターネットから解決策を見つけようとしましたが、何も役に立ちませんでした。誰かが解決策を提供できるなら、私は感謝します。