0

我已将 rest.php 从 core/config 复制到 app/config 并将 default_format 修改为 json,但如果我不将“.json”附加到 URL,我仍然会得到 XML 格式的响应。

如何在没有格式的 URL 上获得 JSON 响应?

4

2 回答 2

5

为了确定返回结果的格式,REST 控制器使用以下算法并选择找到的第一个:

  1. 如果受保护的属性 $format 包含受支持的格式,则使用它
  2. 如果它是受支持的格式,则使用 URL 扩展名
  3. 如果路由中包含受支持的格式,则使用 :format 变量指定的格式
  4. 使用 HTTP_ACCEPT 标头中定义的格式
  5. 使用类的 $rest_format 属性定义的默认值

如果您正在执行 AJAX 请求,您将希望随请求一起发送一些接受标头。对响应类型服务器端进行硬编码被认为是不好的做法。

于 2013-02-19T22:34:05.023 回答
3

在您的控制器中,

受保护的 $format = 'json';

于 2012-07-18T05:18:20.187 回答