2

有人可以解释这种行为吗?

在这种情况下:

header("Content-type: text/html");
echo json_encode("error_101");

有用。

在另一种情况下:

header("Content-type: application/json");
echo json_encode("error_101");

它不起作用(无限加载)。

但是如果我将一个数组传递给 json_encode,它会以两种方式工作,所以这个问题只存在于 json values

这似乎是一个错误!

4

1 回答 1

2

json 文本中最外层的数据类型必须是数组或对象。

JSON 语法

JSON 文本是一系列标记。标记集包括六个结构字符、字符串、数字和三个文字名称。

JSON 文本是一个序列化的对象或数组。

  JSON-text = object / array

http://www.ietf.org/rfc/rfc4627.txt

如果您将json_encode字符串传递给 PHP 的函数,那么它将输出为 JavaScript 编码的字符串(而不是抛出错误)。我认为这是一个错误。

据推测,向这个脚本发出 HTTP 请求的任何东西都遇到了无效 JSON 响应的问题,但对无效 HTML 有更好的错误恢复。

于 2012-06-07T14:34:54.910 回答