0

選択したテキストボックスに別のページの動的データを入力したいと思います。このページは、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の代わりに配列の構造を自分でエコーしようとしましたが、それも機能しません。

4

1 に答える 1

0

PHP ページのバグである可能性があります。エラー報告はありますか?そこにあなたの答えが見つかるかもしれません。

を使用して、サーバーのエラー ログを表示してみてください。

tail -f /var/log/apache/php.errors

コマンドラインアクセスを持っていないので、追加してください

error_reporting(E_ALL);

.php ファイルの先頭に。

于 2012-05-11T14:55:40.060 に答える