【问题标题】:Content-type and json_encode() values内容类型和 json_encode() 值
【发布时间】:2012-06-07 14:32:37
【问题描述】:

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

在这种情况下:

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

它有效。

在其他情况下:

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

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

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

这似乎是一个错误!

【问题讨论】:

    标签: php http-headers json


    【解决方案1】:

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

    JSON 语法

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

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

      JSON-text = object / array
    

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-09-05
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      相关资源
      最近更新 更多