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"}]

我不确定这是否意味着什么,但是在运行萤火虫报告的页面上:

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"}]

更多信息:当数据是静态的时它工作正常,即我将整个数组作为文本复制并粘贴到页面上并注释掉所有数据。我实际上可以在 chrome 控制台中看到响应文本,即使服务器显示错误 500。我刚刚尝试自己回显数组的结构而不是 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 回答