0
votes

Comment empêcher TYPO3 de rendre les éléments de la tête et du corps lors de la sortie JSON?

dans typo3 8.7 J'essaie de générer JSON à l'aide de fluide.

J'ai créé une page avec du contenu factice et j'ai mis à jour ma configuration de typoscript pour toutes les pages d'un dossier. P>

SETUP TYPOSSOT DOPOSSOT FORT> P>

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


1 commentaires

Avez-vous envisagé le JSONView qui vient de TYPO3 par défaut? Ou vous pouvez simplement utiliser la classe autonome, où vous ne rendez que le modèle réel sans en-tête et le corps


3 Réponses :


0
votes

Lorsque vous remplacez l'objet de la page, vous devez supprimer tout l'intérieur avant avec page> . De plus, le fluide est un moteur de modèles pour HTML, je ne sais pas si cela convient à la sortie JSON.

meilleur moyen:

Je suggère d'utiliser un objet distinct que la page et un type de page différent: xxx


2 commentaires

Merci pour votre réponse. Cela semble prometteur. Malheureusement, lorsque je le mettez à la mise à jour comme ça et appelez la page avec ? Tapez = 133 I Obtenir exactement la même sortie qu'avant, y compris HTML et Corps .


Comment ressemble votre contrôleur?



0
votes

Ce qui vous manque, c'est ce typoscript: xxx

Lire le manuel

Comme vous le souhaitez sur une page spéciale, vous pouvez utiliser un modèle de typoscript spécial pour cette page. . Pour un pageType, il est un peu plus compliqué car cette configuration fonctionnerait sur tous les pagetypes.
Si vous voulez des options config uniquement pour un pageType spécial Vous pouvez ajouter cette configuration au pageType uniquement comme ceci: xxx

Sachez que le fluide est plus compliqué si vous donnez une autre structure que HTML. Mais c'est possible! Avoir un regard spécial sur les espaces et les accolades ( {} )


0 commentaires

1
votes

Le problème était une nouvelle syntaxe dans TYPO3 8 et plus récente. Dans les versions plus récentes, les Theaders CODE> ne sont plus un texte code> mais un Array avec indices numériques code> . Donc, pour définir le type d'en-tête correct, vous devez utiliser celui-ci:

additionalHeaders.10.header = Content-Type:application/json;charset=utf-8


0 commentaires