我有一个JSON文件,其中包含与系统相关的信息 - 打开和关闭的LED和开关等等。然后我有一个后台运行的守护程序并收集此信息并将其写入JSON文件。我正在使用AJAX读取JSON文件,然后在网页上显示信息。问题是有时守护进程在服务器将文件发送到客户端时更新文件,然后出现错误“CONTENT_LENGTH_MISMATCH”。
这样做的正确方法是什么?
答案 0 :(得分:0)
您为内容长度标头发送了错误的值。根据rfc2616
The Content-Length entity-header field indicates the size of the entity-body,
in decimal number of OCTETs, sent to the recipient or, in the case of the HEAD
method, the size of the entity-body that would have been sent had the request
been a GET.
此处的解决方案是,如果您不想收到此错误,请在将代码发送到浏览器之前传递正确的值。
示例:
<?php
// Beggining of the code start output buffering
ob_start();
// Process reading json file
// ......
// Ouput the content to the browser
echo $json;
// Set content-lenght header
header('Content-Length: '.ob_get_length());
// Flush
ob_flush();
?>