我正在尝试从Chrome扩展程序发送JSON缓冲区,但出现内部500错误。这是发送缓冲区的代码。
var xhr = new XMLHttpRequest();
xhr.onerror = function(req,textStatus,errorThrown) {
console.log(textStatus);
alert('on-error')};
xhr.open('POST', url, true);
xhr.setRequestHeader("Content-type", 'application/json');
xhr.setRequestHeader("X-Requested-With",'XMLHttpRequest');
xhr.setRequestHeader("Access-Control-Allow-Origin", '*');
xhr.onload = function () { //response will go here
if(xhr.status == 500) {
alert("server error 500");
}
在Apache Linux服务器端,我用
发回响应enter code here
$this->output
->set_content_type('application/json')
->set_header("Access-Control-Allow-Origin", "*")
->set_output(json_encode($table));
我已经在这个问题上停留了一个多月,真的需要一些关于我做错事情的想法。我在两台机器上都有调试器。我看到缓冲区正确耗尽,并且可以正确接收缓冲区。我认为我正确设置了响应标头,但始终收到500错误。顺便说一句,它在我的本地主机上运行的WAMP可以正常工作。
这来自apache error_log:[Fri Oct 26 18:22:07.162178 2018] [proxy_fcgi:error] [pid 2001:tid 139930806171392] [client 69.124.178.164:57141]脚本'index.php'的标头格式错误:错误的标题:{“ 0”:[“ {choose}”,“ IOS”,“ Mac”,“ [2018年10月26日星期五18:22:07.163669] [proxy_fcgi:error] [pid 2001:tid 139930806171392] [客户端69.124.178.164:57141] AH01070:解析脚本标头时出错 [2018年10月26日星期五18:22:07.163679] [proxy_fcgi:error] [pid 2001:tid 139930806171392](22)无效的参数:[client 69.124.178.164:57141] AH01075:错误地将请求分发给: [2018年10月26日星期五18:22:33.796554] [proxy_fcgi:error] [pid 2001:tid 139930797778688] [client 69.124.178.164:57179]脚本'index.php'的标头格式错误:标头错误:{“ 0”:[ “ {choose}”,“ IOS”,“ Mac”,“ [2018年10月26日星期五18:22:33.796627] [proxy_fcgi:error] [pid 2001:tid 139930797778688] [客户端69.124.178.164:57179] AH01070:解析脚本标头时出错 [2018年10月26日星期五18:22:33.796633] [proxy_fcgi:error] [pid 2001:tid 139930797778688](22)无效的参数:[client 69.124.178.164:57179] AH01075:将请求分发到时出错:
标头格式错误的行实际上是我从服务器到扩展程序的有效负载。不是标题,而是有效负载。
答案 0 :(得分:1)
经过一个多月的思考,认为这是我的服务器或我的代码,结果证明这是codeigniter中未经证实的错误。我替换了
> show engine innodb status;
现在它可以正常工作了!