如何检索请求有效负载
How to retrieve Request Payload
我正在使用PHP,ExtJS和ajax存储。
它发送的数据(在创建、更新、销毁时(不在 POST 或 GET 中。在Chrome控制台中,我在"Request Payload"
字段中看到我的传出参数为JSON。 $_POST
和$_GET
为空。
如何在PHP中检索它?
正确理解这种情况,您只是通过 http 正文传递 json 数据,而不是application/x-www-form-urlencoded
数据。
您可以使用以下代码段获取此数据:
$request_body = file_get_contents('php://input');
如果你正在传递 json,那么你可以这样做:
$data = json_decode($request_body);
然后$data
包含 JSON 数据是 php 数组。
php://input
是一个所谓的包装器。
php://input 是一个只读流,允许您读取原始数据 从请求正文。在开机自检请求的情况下,最好 使用 php://input 而不是 $HTTP_RAW_POST_DATA 因为它没有 依赖于特殊的 PHP.ini 指令。此外,对于以下情况 默认情况下不填充$HTTP_RAW_POST_DATA,它是一个潜在的 减少内存占用的激活替代方案 always_populate_raw_post_data。php://input 不适用于 enctype="multipart/form-data"。
您也可以使用 encode
: true
设置 extJs writer
,它将定期发送数据(因此,您将能够通过 $_POST
和 $_GET
检索数据(。
。这些值将作为请求参数的一部分发送为 反对原始帖子(通过 Ext.data.writer.Json 的编码配置文档(
更新
文档还说:
仅当定义了根时,才应将编码选项设置为 true
因此,可能需要writer
的root
配置。
- Javascript XMLHttpRequest——只有第一个POST请求有效
- Ajax GET 请求的 URL 失败,但 hurl.it 相同 URL 的 GET 请求有效.什么给
- 异步HTTP(ajax)请求在脚本标记中有效,但在js文件中无效
- 在Sencha Touch中请求有效载荷数据
- 如何从请求有效负载将数据发布为 json
- XMLHttpRequest POST 请求到当前 URL 的有效 URL 字符串
- 节点.js服务器在浏览器中超时,但 cURL 请求有效
- 批量编辑 - 不需要的请求或有效负载
- 表单数据和请求有效负载有什么区别
- 具有JSON有效负载的Crossrider ajax帖子请求在Rails后端中无法正确接收
- 为什么此跨域请求解决方法有效
- jQuery ajax 请求有效,相同的 AngularJS ajax 请求无效
- 使用主干.js .save() 方法在请求后传递请求有效负载中的数组
- Rails 4:咖啡脚本仅在有发布请求或重新加载页面时有效
- 在 Javascript 中捕获请求有效负载
- 在每秒 10 次调用限制的情况下一次发出 50 个 API 请求的有效方法是什么(烂番茄 API)
- 如何检索请求有效负载
- 主干销毁模型,获取方法或请求有效载荷
- 主干发送请求有效载荷而不是FormData
- Ember 数据嵌套 url 适配器不会在请求标头中显示请求有效负载