PHPでPOSTデータを取得するためにfetch()
API POSTメソッドを使用しようとしています。
これが私が試したものです:
var x = "hello";
fetch(url,{method:'post',body:x}).then(function(response){
return response.json();
});
PHP:
<?php
if(isset($_GET['x']))
{
$get = $_GET['x'];
echo $get;
}
?>
これは正しいです?
場合によります:
あなたがしたい場合は $_GET['x']
、クエリ文字列でデータを送信する必要があります:
var url = '/your/url?x=hello';
fetch(url)
.then(function (response) {
return response.text();
})
.then(function (body) {
console.log(body);
});
あなたがしたい場合は $_POST['x']
、FormData
としてデータを送信する必要があります:
var url = '/your/url';
var formData = new FormData();
formData.append('x', 'hello');
fetch(url, { method: 'POST', body: formData })
.then(function (response) {
return response.text();
})
.then(function (body) {
console.log(body);
});
どうやら、Fetch APIを使用してPHPサーバーにデータを送信する場合、以前とは少し異なるリクエストを処理する必要があります。
この入力がmultipart-data formまたはapplication/x-www-form-urlencoded
特別なfile:_php://input
_を読み取ることでデータを取得できます。たとえば、file_get_contents('php://input')
を使用して、その入力をjson_decode()
。
うまくいけば、それが役立ちます。
あなたはそれについてここでもっと読むことができます:
使用する $_POST
ポスト変数を取得します。
$x = $_POST['x'];
undefined
変数のフォールバックを追加することもお勧めします。
$x = isset($_POST['x']) ? $_POST['x'] : 'default value';