Hallo,


Ik zou graag wat hulp willen hebben bij het verkrijgen van de JSON data.
Vanuit php verstuur ik JSON terug naar de client.


<?php 
//dit is een van de de arrays die terug naar de client worden gestuurd zie onder
$response['status'] = 'success';

header('Content-Type: application/json; charset=UTF-8');
echo json_encode($response);
?>




<script type="text/javascript">
	function ajaxifi(evt){
		evt.preventDefault();
		var form 		= evt.target;
		var formData 	= new FormData(form);
		fetch(form.action, {
   		 	method: form.method,
   		 	body: formData
  		}).then((response) => { 
			var data = JSON.parse(response);
			alert(data['status']);
		});
	}
</script>


In de error console van de browser krijg ik als error: parse.JSON Unexpected identifier "object";
Ik heb hier en daar al wat gegoogled maar kom er niet helemaal uit.


Alvast bedankt :)
Waar staat er over de request in de network-tab van je browser?
Weet je zeker dat je dit nogmaals als JSON moet parsen? Heb je al geprobeerd om rechtstreeks response.status weer te geven via console of alert?

Volgens mij is of zou JSON rechtstreeks bruikbaar moeten zijn?
Hoi hoi,

@arien dan zie ik het volgende

{
    "status": "errors",
    "errors": [
        "Je bent vergeten je voornaam in te vullen",
        "Je bent vergeten je achternaam in te vullen",
        "Je bent vergeten je e-mailadres in te vullen",
        "Voor deze offerte is het type textiel nodig",
        "Voor deze offerte is een aantal nodig",
        ""
    ]
}


@thomas Als ik response.status of response['status'] doe dan krijg ik 200 terug als waarde.
Controleer van wat voor type response is.

Ik denk dat je fetch ook verkeerd is.

Kijk naar het simpele fetch-voorbeeld om een JSON body op te halen. Wat jij doet wijkt hier nogal van af.
@thomas,


	function ajaxifi(evt){
		evt.preventDefault();
		var form 		= evt.target;
		var formData 	= new FormData(form);
		fetch(form.action, {
   		 	method: form.method,
   		 	body: formData
  		}).then(response => response.json())
  		.then(data => alert(data['status']));
	}


Opgelost!

Reageren