【问题标题】:Why this json Symfony output outputs the headers为什么这个 json Symfony 输出输出标题
【发布时间】:2012-07-17 05:27:43
【问题描述】:

这是我玩 Symfony 和 drupal 8 的第一天,所以如果我的问题很明显,请原谅。

使用 drupal 7:

drupal_json_output(array('products' => array_values($products)));
exit; 

json 输出是干净的:

{"products":["item_1","item_2",....]}

使用 drupal 8:

use Symfony\Component\HttpFoundation\JsonResponse; 
// some process
print new JsonResponse(array('products' => array_values($products)));
exit;

它与标题一起输出:

HTTP/1.0 200 OK
Cache-Control: no-cache
Content-Type:  application/json
Date:          Wed, 18 Jul 2012 07:53:26 GMT

{"products":["item_1","item_2",....]}

你如何摆脱这些标题?

我坚持阅读参考文献here

非常感谢任何提示。

【问题讨论】:

  • print new JsonResp... 用于调试。使用send()方法发送输出
  • 非常感谢。我需要阅读更完整的文档。交叉引用:stackoverflow.com/questions/8623962/…
  • @swan 你可以编辑我的答案来改进它并写关于send()

标签: symfony drupal-8


【解决方案1】:

通过调用$response->getContent(),您只能获取响应的“内容”。

你可以这样做

use Symfony\Component\HttpFoundation\JsonResponse; 
// some process
$response = new JsonResponse(array('products' => array_values($products)));
print $response->getContent();
exit;

但是,请注意这是一种不好的做法,因为您会在此过程中丢失响应标头,并且不会告诉您响应的内容类型是什么(在这种情况下:“application/ json") 等 ...

我不知道如何使用 drupal 正确执行此操作,感谢任何提示。

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 2013-02-21
    • 2021-04-06
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多