der henry: mein erstes PHP cgi-Script

Beitrag lesen

Hallo,

ich habe jetzt versucht ein erstes "Probescript" mit JS-fetch und PHP zu testen. Damit die gesendeten Daten nicht sichtbar in der Adresszeile stehen, sende ich mit post.

JS fetch sendet ein json an das php-cgi-script und diese sendet das gleiche wieder an JS zurück.

Fehler im catch: There was an error SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

const data = await response.json();
async function refreshData()
{
let meinObjekt = {
  "name": "Max Mustermann",
  "alter": 30,
  "istAktiv": true,
  "hobbies": ["Lesen", "Programmieren", "Wandern"]
};
	
	try
	{
		const response = await fetch("loadvalue.php",
		{
			method: 'POST',
			header: 'Content-Type: application/json; charset=UTF-8',
			body: JSON.stringify(meinObjekt),
		});
      
		if (response.ok) {
		const data = await response.json();
		
		console.log(data.name);
		}
	}
	catch (error)
	{
		// TypeError: Failed to fetch
		console.log('There was an error', error);
	} 
} 

PHP: loadvalue.php

#!/usr/bin/php-cgi
<?php
$json_string = file_get_contents('php://input');
$data = json_decode($json_string, true);

	
	// caching verhindern
	header('Cache-Control: no-cache');
	header("Expires: 0");
	header('Pragma: no-cache'); 

    
//header("ETag: \"" . (new DateTimeImmutable())->format('c') . "\"");
	header('Content-Type: application/json; charset=UTF-8');
	echo json_encode($data);

Hier komme ich leider nicht weiter, bzw. sehe das Problem nicht 🤔

Vielen Dank !!