Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php JSON请求错误500_Php_Javascript_Json_Xmlhttprequest - Fatal编程技术网

Php JSON请求错误500

Php JSON请求错误500,php,javascript,json,xmlhttprequest,Php,Javascript,Json,Xmlhttprequest,我想用另一个页面的一些动态数据填充一个选择文本框。页面使用json_encode输出一个php数组。在同一个站点的另一个页面上,这对我来说很好,但由于某些原因,chrome和firebug中的控制台显示500内部服务器错误。如果我自己浏览到这个页面,我可以很好地看到输出,在打开JSON无法访问的链接时,我已经确保URL是正确的。 我的要求是: var Type = $("#a option:selected").text(); if (window.XMLHttpRequest) {//

我想用另一个页面的一些动态数据填充一个选择文本框。页面使用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"}]
更多信息: 当数据是静态的时,它可以正常工作,即,我将整个数组作为文本复制并粘贴到页面上,并注释掉所有数据。 我实际上可以在chrome控制台中看到响应文本,即使服务器显示错误500。
我只是尝试自己回显数组的结构,而不是json_encode,这也不起作用。

这可能是PHP页面上的一个错误。你有错误报告吗?你可能会在那里找到答案

尝试使用查看服务器上的错误日志

tail -f /var/log/apache/php.errors
由于您没有命令行访问权限,请添加

error_reporting(E_ALL);

在.php文件的顶部。

我查看了您使用jquery var Type=$a option:selected.text;的代码;。那么,你为什么不使用它呢。它会更简单。我一开始确实用过,但我以前没有像这个版本那样使用过它。它也抛出了500错误,所以我回到了我知道有效的方法。非常确定。当我使用任何可能的url参数浏览页面时,我会得到一个数据数组,如帖子中所示。不过,该数组比提供的示例长得多。一开始我认为这可能是因为ID得到了引号,但是JSON\u NUMERIC\u CHECK改变了这一点,但我仍然有500个错误。你有jQuery可用,为什么不使用$.ajax?!我在之前的评论中解释了这一点。我刚刚用更多信息更新了我的问题。我将把那个命令放在哪里?据我所知,我没有任何命令行访问权限。任何地方都没有显示错误。包含数据的页面仍在输出正确的数组,我要在其中显示数据的页面也没有错误。我把那一行放在两页的顶端。