【问题标题】:Symfony 2 toString 500 InternalSymfony 2 toString 500 内部
【发布时间】:2014-02-28 10:00:06
【问题描述】:

当我尝试解码然后从 ajax 返回帖子数组时,我在 symfony 中不断收到相同的错误。

错误:

响应内容必须是字符串或对象,实现__toString(),“object”给定。

500 内部服务器错误 - UnexpectedValueException

PHP

public function ajaxAction(){

    $array = $_POST['json'];

    $arraydecode = json_decode($array);

    return new Response($arraydecode);

}

有什么想法吗?

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    您可以使用 JsonResponse:http://symfony.com/doc/2.3/components/http_foundation/introduction.html#creating-a-json-response

    use Symfony\Component\HttpFoundation\JsonResponse;
    //some code
    return new JsonResponse($array);
    

    【讨论】:

      【解决方案2】:

      您必须首先对您的数组进行编码,以确保您有一个有效的 json 字符串。然后返回json内容类型的字符串。

      $array = $_POST['json'];
      $arraydecode = json_encode($array);
      
      $response = new Response($arraycode);
      $response->headers->set('Content-Type', 'application/json');
      
      return $response;
      

      【讨论】:

      • 如果可能的话,我要把它作为一个数组返回。
      • @BrentFrench 您最好将其作为 JSON 对象返回,然后在您的 JS 代码中,使用 JSON.parse() 获取您的数组。
      • 你不能返回一个数组。不支持数组。问题是你将如何解决数组?因为那是 json 格式。你有一个定义的格式,你可以使用其他语言,比如 javascript。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 2014-12-23
      相关资源
      最近更新 更多