私がやろうとしているのは、データを抽出するために ajax リクエストから XML を取得することです (DOM を使用しますが、重要ではありません)。いいえ、AjaxRequest.responseText を取得しようとすると問題なく動作するため、ajax が正常に動作することはわかっています。私が取得しているエラーメッセージは次のように言っています:
「null」はオブジェクトではありません (「resturantsCategoriesAjaxXML.getElementsByTagName」を評価しています)
そして、responseXML をログに書き込もうとすると、定義されていないように null しか返されません。AJAX を処理する完全な JS (変な変数名で申し訳ありません。問題がタイプミスの場合に備えて変数名を変更したくなかっただけです) と、取得する XML (単純な XML) を含めました。 ご協力ありがとうございました:D
Java スクリプト:
resturantsCategoriesAjaxRequestAdress = "testFiles/categoriesAjax.xml";
resturantsCategoriesAjaxRequest = new XMLHttpRequest();
resturantsCategoriesAjaxRequest.onreadystatechange = function(){
if(resturantsCategoriesAjaxRequest.readyState == 4){
resturantsCategoriesAjaxXML = resturantsCategoriesAjaxRequest.responseXML;
console.log(resturantsCategoriesAjaxRequest.responseXML);
categoriesArray = resturantsCategoriesAjaxXML.getElementsByTagName("category");
categoriesArraylenght = categoriesArray.length;
alert(categoriesArraylenght);
categoriesArrayIritationControl = 0;
while (categoriesArraylenght >= categoriesArrayIritationControl) {
categoryName = categoriesArray[categoriesArrayIritationControl].getAttribut("name");
//create new <li> object
//add to ctegories menu on restrants page
alert(categoryName);
}
}
}
resturantsCategoriesAjaxRequest.open("GET", resturantsCategoriesAjaxRequestAdress, true);
resturantsCategoriesAjaxRequest.overrideMimeType("text/xml");
resturantsCategoriesAjaxRequest.send();
console.log(resturantsCategoriesAjaxRequest.readyState);
XML:
<?xml version='1.0'?>
<category name="Fast_Food" id="1120"></category>
<category name="Chinese" id="1108"></category>
<category name="Italian" id="1230"></category>