在输出JSON时如何防止TYPO3渲染头和身体元素?

问题描述 投票:0回答:1

在TYPO3 8.7中,我试图使用FLUID生成JSON。

我创建了一个包含虚拟内容的页面,并且已经更新了文件夹中所有页面的TypoScript配置。

TypoScript设置

[PIDinRootline = 10]
    page = PAGE
    page {
        typeNum = 0

        config {
            disableAllHeaderCode = 1
            disablePrefixComment = 1
            xhtml_cleaning = none
            admPanel = 0
            debug = 0
            metaCharset = utf-8
            additionalHeaders = Content-Type:text/json;charset=utf-8
        }
    }
[global]

我还创建了一个虚拟JSON文件,以测试输出,然后使用FLUID创建实际内容:

api.json

{
    "hello": "world"
}

现在,这似乎工作正常。但是输出仍然包含html-和body元素。

渲染的输出:

<html>
    <head></head>
    <body>
        {"hello": "world"}
     </body>
</html>

documentations says

如果您要使用Fluid输出JSON,RSS或类似数据,您必须编写适当的TypoScript并通过页面渲染分别为Extbase和Fluid。除此以外,TYPO3将始终生成<head>-和<body>-部分。

但是我实际上不知道该怎么办。如何获得TYPO3不呈现包装的HTML元素?

typo3 typoscript fluid typo3-8.x
1个回答
0
投票

当覆盖页面对象时,应先使用page >删除其中的所有对象。另外,Fluid是HTML的模板引擎,我不知道它是否适合JSON输出。

更好的方式:我建议使用与页面不同的对象和不同的页面类型:

[globalVar = GP:type = 133]
  jsonOutput = PAGE
  jsonOutput {
    typeNum = 133

    config {
      ...
    }
  }
[global]
© www.soinside.com 2019 - 2024. All rights reserved.