我有 Postman(在 Chrome 中没有打开的那个),我正在尝试使用原始 json 进行 POST 请求。
在 Body 选项卡中,我选择了“raw”和“JSON(application/json)”与此正文:
{
"foo": "bar"
}
对于标题我有 1,Content-Type: application/json
在 PHP 方面,我现在正在做print_r($_POST);
,我得到一个空数组。
如果我使用 jQuery 并执行:
$.ajax({
"type": "POST",
"url": "/rest/index.php",
"data": {
"foo": "bar"
}
}).done(function (d) {
console.log(d);
});
我得到了预期的结果:
Array
(
[foo] => bar
)
那么为什么它不与 Postman 合作?
邮差截图:
和标题:
5 回答
我遇到了同样的问题,代码为我工作:
安装 Postman 原生应用,Chrome 扩展程序已被弃用。 (我在自己的窗口打开但仍然以 Chrome 应用程序运行)
与
jQuery
不同,为了读取原始JSON
,您需要在 PHP 中对其进行解码。php://input
是一个 read-only 流,允许您从请求正文中读取原始数据。$_POST
是表单变量,你需要在postman
中切换到form
radiobutton 然后使用:要使用
jquery
发布原始json
:只需从二进制文件旁边的下拉列表中选中 JSON 选项即可;当你点击原始。这应该做
meda 的答案是完全合法的,但是当我复制代码时我得到了一个错误!
在
"php://input"
的某个地方有一个无效的字符(可能是其中一个引号?)。当我手动输入
"php://input"
代码时,它工作。花了一段时间才弄明白!