我有一个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;
但是浏览器在/home/external/public_html/src/Apostle/ApiBundle/Controller/DefaultController.php中显示未定义索引:电子邮件
我哪里错了?????
答案 0 :(得分:1)
首先,关于电子邮件错误,发送到控制器的请求没有'email'post参数。
然后你必须在symfony控制器中返回响应,而不仅仅是回显它。
<强>更新强>
我认为您不应该直接在symfony中使用$ _POST,请使用$ this-&gt; getRequest() - &gt; get()方法,或$ this-&gt; getRequest-&gt; request-&gt;特定POST参数的get()方法。
答案 1 :(得分:1)
您的代码存在很多问题。
$_POST
变量。始终使用$this->getRequest()->get('email')
代替$_POST['email']
。JsonResponse
然后实例化Response
并将其Content-type
设置为application/json
会更好。$_POST
通知和$this->getRequest()->get()
空指针的原因是您的客户端(您的Android设备)未发送电子邮件参数。echo
Response
,您应该将其退回。我希望它有所帮助。