t-alexashka
@t-alexashka
Сразу пишу legacy код

Javascript разбор входящего JSON'a?

Добрый вечер товарищи.

При отправке json из php в js я использую JSON.parse(response). И вот что странно как мне кажется:

Если php отправляет со стандартными заголовками (text/html) то ф-я JSON.parse() работает корректно. Если я принудительно меняю заголовки на application/json, то парсинг вылетает с исключением блабла [Object object], это говорит о том что пришедшие данные не нуждаются в парсинге, и являются уже готовым объектом. Правильно ли я все понимаю, и для всех ли браузеров действует это правило, что если данные приходят с заголовком application/json, то прогонять их через JSON.parse не нужно?
  • Вопрос задан
  • 524 просмотра
Решения вопроса 1
nazarpc
@nazarpc
Open Source enthusiast
Зависит от того, как вы делаете запрос. Если это jQuery - то это нормально. Если XHR2 - там есть возможность и сырой ответ забрать, и разобранный. Код покажите:)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
t-alexashka
@t-alexashka Автор вопроса
Сразу пишу legacy код
да, жеквери.

$('.as-ajax').submit(function(e){
		
		e.preventDefault();
		
		$.post($(this).attr('action'), $(this).serialize(), function(response) {
			
			try {
				var response = JSON.parse(response);
			}
			catch (e) {
				var response = {
					status: 400,
					message: 'Unknown error occurred: [' + response + ']'
				};
			}
			
			sys.noty(response.message, response.status > 200 ? 'error' : 'success');
			
		});
	
	});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы