Ho sempre cercato di evitare di usare la maggior parte delle proprietà del protocollo HTTP per paura dell'ignoto.
Tuttavia, mi sono detto che oggi affronterò la paura e inizierò a usare le intestazioni intenzionalmente. Ho cercato di inviare json
dati al browser e di utilizzarli immediatamente. Ad esempio, se ho una funzione di gestore Ajax nello stato pronto 4 che assomiglia a questo:
function ajaxHandler(response){
alert(response.text);
}
E ho impostato l'intestazione del tipo di contenuto nel mio codice PHP:
header('Content-Type: application/json');
echo json_encode(array('text' => 'omrele'));
Perché non riesco ad accedere direttamente alla proprietà dalla funzione del gestore, quando al browser viene comunicato chiaramente che i dati in arrivo sono application/json
?
JSON.parse()
. È possibile eseguire alcune azioni diverse o forzare un errore se viene visualizzato ContentType errato.
response.text
è ancora una stringa.
text
come variabile javascript nel gestore e non una risposta? Sarebbe una funzionalità molto strana. Json_encode crea anche 1 oggetto dal tuo array PHP. Quindi quando lo ottieni in JavaScript deve essere assegnato a una variabile.