選択したテキストボックスに別のページの動的データを入力したいと思います。このページは、json_encodeを使用してphp配列を出力します。これは同じサイトの別のページで正常に機能していますが、何らかの理由でChromeとFirebugのコンソールに「500(内部サーバーエラー)」と表示されます。自分でページを参照すると、出力が正常に表示されます。JSONがアクセスできなかったリンクを開いたときに、URLが正しいことを確認しました。私のリクエストは:
var Type = $("#a option:selected").text();
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
dateChangeRequest=new XMLHttpRequest();
}
else
{// code for IE6, IE5
dateChangeRequest=new ActiveXObject("Microsoft.XMLHTTP");
}
dateChangeRequest.onreadystatechange=function()
{
if (dateChangeRequest.readyState==4 && dateChangeRequest.status==200)
{
var returnList = dateChangeRequest.responseText;
}
}
dateChangeRequest.open("GET","entList.php?ents="+Type,true);
dateChangeRequest.send();
動的ページからのいくつかのサンプルデータ:
[{"EntID":2,"Display":"Some Name - Alias"},{"EntID":3,"Display":"Some Other Name - Another Alias"}]
それが何かを意味するかどうかはわかりませんが、firebugレポートが機能しているページでは次のようになります。
Connection Keep-Alive
Keep-Alive timeout=15, max=90
しかし、このページでは次のように報告しています。
Connection close
リクエストヘッダーがキープアライブを要求している場合でも。どんな助けでも大歓迎です。
実際、そのサンプルデータをページに配置すると、正常にフェッチされます。データベースからデータの配列を生成してから、json_encodeで出力しています。これは、別のページで正常に機能しています。ページの実際の出力からの抜粋を次に示します。
[{"EntID":2,"Display":"Eddard Stark - Ned"},{"EntID":3,"Display":"Robb Stark - The Young Wolf"},{"EntID":5,"Display":"Catelyn Tully - Cat"},{"EntID":7,"Display":"Aegon I Targaryen - Aegon the Conqueror"},{"EntID":20,"Display":"Rhaenyra Targaryen - "},{"EntID":11,"Display":"Aenys I Targaryen - "},{"EntID":12,"Display":"Maegor I Targaryen - "},{"EntID":13,"Display":"Jaehaerys I Targaryen - "},{"EntID":14,"Display":"Viserys I Targaryen - "},{"EntID":15,"Display":"Aegon II Targaryen - "},{"EntID":16,"Display":"Rhaenys Targaryen - "},{"EntID":17,"Display":"Visenya Targaryen - "},{"EntID":74,"Display":"Jon Snow - Lord Snow"}]
さらに詳しい情報:データが静的な場合は正常に機能します。つまり、配列全体をコピーしてページにテキストとして貼り付け、すべてのデータをコメントアウトします。サーバーにエラー500と表示されていても、実際にはChromeコンソールに応答テキストが表示されます。json_encodeの代わりに配列の構造を自分でエコーしようとしましたが、それも機能しません。