[javascript] PHPサーバにPOSTリクエストを送信してJSON形式で受領する
PHPサーバにPOSTリクエストを送信してJSON形式で受領するには以下のコードを実装
目次
クライアントJavascript側
送信先はtest.phpとしている
// Base64エンコードされたデータを取得する(例としてformDataから取得すると仮定)
var base64EncodedData = btoa(JSON.stringify(formData));
$.ajax({
url: 'test.php',
data: { data: base64EncodedData }, // Base64エンコードされたデータを送信
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
processData: false,
cache: false,
type: 'POST',
dataType: "json",
success: function(data) {
console.log(data);
// 成功時の処理を記述する
},
error: function(jqXHR, textStatus, errorThrown) {
console.error('AJAXエラー:', textStatus, errorThrown);
// エラー時の処理を記述する
}
});
PHPサーバ側
<?php
// test.php
// POSTされたBase64エンコードされたデータを受け取る
$base64EncodedData = $_POST['data'];
// Base64デコードしてデータを取得する
$data = json_decode(base64_decode($base64EncodedData), true);
// 必要なデータを取得する(例としてqueryから取得すると仮定)
$query = array(
'value1',
'value2',
'value3',
'value4'
);
// var_dumpで出力する
ob_start(); // バッファリング開始
var_dump($query); // データをvar_dumpで出力
$output = ob_get_clean(); // バッファの内容を取得してクリア
// JSON形式で出力するためのヘッダーを設定
header('Content-Type: application/json');
// JSON形式で出力する
echo json_encode(array(
'status' => 'success',
'data' => $output // var_dumpの結果をdataとして返す
));
// 必要に応じて、エラーハンドリングやその他の処理を追加することができます
?>