我想用另一个页面中的一些动态数据填充选择的文本框。该页面使用json_encode输出一个php数组。这对我来说在同一网站的另一个页面上运行正常,但由于某种原因,Chrome和firebug中的控制台说“500(内部服务器错误)”。如果我自己浏览页面,我可以看到输出正常,我确保URL正确,因为我打开了JSON无法访问的链接。 我的要求是:
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"}]
更多信息: 当数据是静态的时,它工作正常,即我将整个数组复制并粘贴到页面上作为文本并注释掉所有数据。 我实际上可以在chrome控制台中看到响应文本,即使服务器显示错误500。 我刚刚尝试回应数组的结构而不是json_encode,这也不起作用。
答案 0 :(得分:0)
这可能是您PHP页面上的错误。你有错误报告吗?你可能会在那里找到答案。
尝试使用
查看服务器上的错误日志tail -f /var/log/apache/php.errors
看到你没有命令行访问权限添加
error_reporting(E_ALL);
到.php文件的顶部。