Symfony FOSRest返回html而不是json

时间:2018-08-29 11:57:45

标签: json api symfony fosrestbundle jmsserializerbundle

您好,我正在开发symfony 2.7-> symfony 3.4。 自迁移以来,我的API路由无效。当我测试它们时,他们向我发送了200 htlm /文本(而不是JSON)的答案。我已经验证了我的实体,控制器和其他捆绑软件的配置,但没有结果。

我使用jmserializer。

这是我的捆绑包配置。

fos_rest:
  param_fetcher_listener:
    enabled: true
  body_listener: true
  format_listener: true
  view:
    view_response_listener: 'force'
    formats:
      json : true
      xml: true
    templating_formats:
      html: true
    force_redirects:
      html: true
    failed_validation: HTTP_BAD_REQUEST
    default_engine: twig
  routing_loader:
    default_format: json
    prefix_methods: false

1 个答案:

答案 0 :(得分:0)

这个对我有用。你可以试试看。

fos_rest:
    allowed_methods_listener: true
    access_denied_listener:
        json: true
    body_listener:
        enabled: true
        default_format: json
        decoders:
            json: fos_rest.decoder.json
    body_converter:
        enabled: true
        validate: true
        validation_errors_argument: validationErrors
    exception:
        enabled: false
        exception_controller: 'AppBundle\Controller\DefaultController::showApiException'
        codes:
            'Symfony\Component\HttpKernel\Exception\NotFoundHttpException': 404
            'Symfony\Component\HttpKernel\Exception\BadRequestHttpException': 400
            'Symfony\Component\Security\Core\Exception\AccessDeniedException': 403
            'Symfony\Component\Security\Core\Exception\DisabledException': 403
            'Doctrine\DBAL\Exception\ServerException': 500
            'Doctrine\ORM\OptimisticLockException': HTTP_CONFLICT
    format_listener:
        rules:
            - { path: '^/', priorities: ['json'], fallback_format: json, prefer_extension: false }
    param_fetcher_listener:
        enabled:  true
        force:    true
    routing_loader:
        default_format: json
    view:
        view_response_listener: 'force'
        formats:
            json: true