Php Sencha Touch FormPanel中的HTTP请求有效负载
我正在写一个senchatouch应用程序。我有一个FormPanel,它向服务器发送POST请求,请求负载如下Php Sencha Touch FormPanel中的HTTP请求有效负载,php,http,post,request,extjs,Php,Http,Post,Request,Extjs,我正在写一个senchatouch应用程序。我有一个FormPanel,它向服务器发送POST请求,请求负载如下 { "records": [ { "Id": 0, "Picture": "", "PostedOn": "Wed Oct 05 2011 16:06:28 GMT+0600 (QYZT)", "OccurringOn": "Wed Oct 05 2011 16:0
{
"records": [
{
"Id": 0,
"Picture": "",
"PostedOn": "Wed Oct 05 2011 16:06:28 GMT+0600 (QYZT)",
"OccurringOn": "Wed Oct 05 2011 16:06:28 GMT+0600 (QYZT)",
"Title": "Test",
"Organiser": "Umair",
"Details": "This is test."
}
]
}
假设这些数据已发布到Events.php,我应该如何在服务器端获取这些数据?我目前正在尝试使用$\u POST[“Title”]
,但它不起作用。您必须阅读(打开php://input 流式传输或从$HTTP\u RAW\u POST\u数据获取(如果已启用)events.php中的打印($\u POST)
显示了什么
您可能需要执行以下操作:
$postvars=json_decode($_POST); // or $postvars=json_decode($_POST['records']);
echo $postvars['records']['title']; // or echo $postvars['title'];
或类似的。我知道Sencha框架经常对发布的变量进行编码(虽然通常不是AJAX的默认值)似乎您正在发送json数据,所以您应该使用json_decode()在尝试访问变量之前,在它上面。当您从客户端发布json数据时,它会使用
内容类型应用程序/json
发送请求。因此,如果您转储$\u POST
,则不会显示任何内容。您需要使用json\u decode($\u POS['records'])
对数据进行post
解码。然后从解码的数组中访问数据。以下是您要求的PHP
代码:
<?php
$records = json_decode($_POST['records']);
$data = $records->Title
?>
在处理通过POST
发送的任何内容之前,请确保对其进行适当的清理,因为在发送之前可以对其进行操作。如何在events.php中传递该数据?是否使用Fiddler捕获请求?如果是的话,请在这里发布。发送请求的是Sencha Touch应用程序的FormPanel。我用chrome Firebug查看请求并从那里复制了请求负载。伙计,你真是个天才!我收到了数据!这是脚本发送变量后返回的结果吗?如果是这种情况,则不会发出POST请求。您确定表单设置为POST而不是GET吗?如果($_SERVER[“REQUEST\u METHOD”]=“POST”)为truejson\u decode
,则根据文档返回:“……在适当的PHP类型中以json编码的值。”这种情况下看起来像一个对象。只是为了正确地引用它,以便从中获取所需的数据。