Zawsze starałem się unikać używania większości właściwości protokołu HTTP ze względu na strach przed nieznanym.
Jednak powiedziałem sobie, że dziś zmierzę się ze strachem i zacznę celowo używać nagłówków. Próbuję przesłać json
dane do przeglądarki i od razu z niej korzystać. Na przykład, jeśli mam funkcję obsługi Ajax w stanie gotowości 4, który wygląda tak:
function ajaxHandler(response){
alert(response.text);
}
I ustawiłem nagłówek typu zawartości w moim kodzie PHP:
header('Content-Type: application/json');
echo json_encode(array('text' => 'omrele'));
Dlaczego nie mogę uzyskać bezpośredniego dostępu do właściwości z funkcji obsługi, gdy przeglądarka jest wyraźnie poinformowana, że przychodzące dane są application/json
?
JSON.parse()
. Możesz wykonać inną akcję lub wymusić błąd, jeśli pojawi się nieprawidłowy typ contentType.
response.text
nadal jest to ciąg.
text
jako zmiennej javascript w module obsługi, a nie odpowiadać? To byłaby bardzo dziwna funkcjonalność. Json_encode tworzy również 1 obiekt z tablicy PHP. Więc kiedy dostaniesz to do javascript, musi być przypisane do zmiennej.