[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として返す
));

// 必要に応じて、エラーハンドリングやその他の処理を追加することができます
?>

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です