0

我有一个 symfony 项目,现在我正在尝试从 android 设备接收数据并通过 json 编码访问该数据,但实际上并未收到数据。而是将 layout.html.twig 作为对 android 应用程序的响应发回。

我正在使用以下代码在我的控制器中接收数据...

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

    echo $response;

但是浏览器说 Undefined index: email in /home/external/public_html/src/Apostle/ApiBundle/Controller/DefaultController.php

我哪里错了??????

4

2 回答 2

1

你的代码有很多问题。

  • 应该读取$_POST变量。始终使用$this->getRequest()->get('email')而不是$_POST['email'].
  • 通常认为实例化 aJsonResponse然后实例化 aResponse并将其设置为Content-type更好application/json
  • 您收到通知$_POST和空指针的$this->getRequest()->get()原因是因为您的客户端(您的 android 设备)没有发送电子邮件参数。
  • 你不应该echoResponse你应该退回它。

我希望它有所帮助。

于 2013-10-24T10:32:53.243 回答
1

首先,关于电子邮件错误,发送到控制器的请求没有'email' post 参数。

然后你必须在 symfony 控制器中返回响应,而不仅仅是回显它。

更新:

我认为你不应该直接在 symfony 中使用 $_POST,请使用 $this->getRequest()->get() 方法,或 $this->getRequest->request->get() 方法用于特定的 POST 参数.

于 2013-10-24T10:04:47.770 回答