Tengo una configuración muy simple para probar mi interfaz PHP/JS. Pero los parámetros POST no se establecen mediante la solicitud de recuperación.
Cliente (JS):
function request(url, data, options) { const fetchOptions = options; // Add data to options fetchOptions['body'] = JSON.stringify(data); return fetch(url, fetchOptions); } function getUsers() { const url = 'http://127.0.0.1:8200/api.php'; const data = { 'api': 'GET_USERS' }; const options = { method: 'POST', mode: 'cors', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', }, }; request(url, data, options) .then(response => response.json()) .then(data => console.log(data)); } Todo lo que quiero probar es enviar la api del parámetro POST con el valor GET_USERS y recibir la respuesta del servidor (json) que verifica si el parámetro POST se configuró correctamente.
Servidor (php):
$response = array(); $meta = array(); if (isset($_POST['api'])) { $meta['api'] = $_POST['api']; } else { $meta['api'] = null; } $response['meta'] = $meta; header("Content-Type: application/json; charset=UTF-8"); header("Access-Control-Allow-Methods: GET, POST, DELETE, OPTIONS"); header("Access-Control-Allow-Origin: *"); header("Access-Control-Max-Age: 3600"); header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Access-Control-Allow-Origin, Authorization, X-Requested-With"); // Send data to client echo json_encode($response, JSON_UNESCAPED_UNICODE); Pero la api del parámetro POST no está configurada, por lo que siempre recibo `{api: null;}' del servidor. Ya probé las siguientes cosas:
body: data en lugar de body: JSON.stringify(data)data como new FormData() y agregue el par clave-valor api por data.append('api', 'GET_USERS')Configuración :