【问题标题】:Symfony: sending a jsonResponseSymfony:发送一个 jsonResponse
【发布时间】:2016-11-04 16:00:23
【问题描述】:

我正在开发一个 symfony 应用程序,我正在尝试使用以下代码删除一个记住我的 cookie:

$response->headers->clearCookie($cookieName,'/');

我必须调用 response->send() 方法才能使其生效,这与简单的响应完美配合,但是当我尝试将它与 jsonResponse 一起使用时,函数 send() 会返回此错误:

JSON.parse:JSON 数据后出现意外的非空白字符

我的 json 数据没有任何问题,即使我没有指定任何数据,发送函数似乎也无法与 jsonResponse 一起使用

这是我的 jsonResponse 代码:

$array = array('message'=>'your account is disabled','success'=>false);
$response = new JsonResponse($array);
$response->send(); //this triggers the error

您的帮助将不胜感激!

【问题讨论】:

  • 它可能不会改变任何东西,但你应该返回 $response 而不是直接调用 send() 方法。
  • 您确定这是与 PHP 相关的错误吗?我在 Javascript 端看到了这个错误。
  • Jakub 如果我返回响应它不会清除 cookie,所以我必须使用产生此错误的发送方法,并添加返回响应不会改变任何事情,
  • felipsmartins 它与 php 相关
  • 您可以在发送前尝试在$response 上进行var_dump 或类似操作,看看它是什么样子的吗?我想知道无空格字符可能是什么。我以前可能见过这样的事情。更新您的帖子以显示打印出来的内容。

标签: symfony jsonresponse


【解决方案1】:

您可以在控制器中使用此代码

$array = array('message'=>'your account is disabled','success'=>false);
return new JsonResponse($array);

发送,在控制器中无效,您可以在控制器中使用返回。

【讨论】:

  • 如果我在没有发送函数的情况下使用 return,deleteCookie 不起作用
  • 实际上它适用于控制器,但不适用于身份验证处理程序,特别是与 remember_me cookie 一起使用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-07
  • 1970-01-01
  • 1970-01-01
  • 2017-02-25
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多