1. ホーム
  2. php

[解決済み] PostmanでPOSTデータを生のJSONで送信する

2022-06-18 10:53:50

質問

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で動かないのでしょうか?


Postmanのスクリーンショットです。

とヘッダがあります。

どのように解決するのですか?

とは異なり jQuery を読むために、生の JSON を読むには、PHP でこれをデコードする必要があります。

print_r(json_decode(file_get_contents("php://input"), true));

php://input は読み取り専用のストリームで、リクエストボディから生のデータを読み取ることができます。

$_POST がフォーム変数である場合、それを form のラジオボタンは postman を使えばいい。

foo=bar&foo2=bar2

生で投稿する場合 jsonjquery :

$.ajax({
    "url": "/rest/index.php",
    'data': JSON.stringify({foo:'bar'}),
    'type': 'POST',
    'contentType': 'application/json'
});