Разбор xhr.responseText | Нажатие на уровень данных GTM

Я нашел этот отличный скрипт, который выполняет работу по сбору JSON в определенной области моего сайта.

Хотелось бы разобрать xhr.responseText, чтобы собрать только ID_number.

Вот сценарий:

<script>
(function() {
	var xhrSend = window.XMLHttpRequest.prototype.send;
	window.XMLHttpRequest.prototype.send = function() {
		var xhr = this;
		var intervalId = window.setInterval(function() {
			if (xhr.readyState != 4) {
				return;
			}
			dataLayer.push({
				'event': 'ajaxSuccess',
				'eventCategory': 'AJAX',
				'eventAction': xhr.responseURL,
				'eventLabel': xhr.responseText
			});
			clearInterval(intervalId);
		}, 1);
		return xhrSend.apply(this, [].slice.call(arguments));
	};
})();
</script>

приведите пример того, что находится в xhr.responseText, пожалуйста

Randy Casburn 17.10.2018 06:31

Вот один под @RandyCasburn: {"status": "ok", "ID_number": "YE513215"}

Truststy 17.10.2018 06:36

Это структура данных, которую я получаю при запуске скрипта.

Truststy 17.10.2018 06:39

Сначала проанализируйте responseText с помощью синтаксического анализа JSON: let data = JSON.parse(xhr.responseText); Затем получите идентификатор следующим образом: let id = data.ID_number

Randy Casburn 17.10.2018 06:44

Большое спасибо! Но я не уверен, как и где это добавить в код. Есть ли шанс, что ты мог бы мне помочь? Ваше здоровье!

Truststy 17.10.2018 06:52
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
5
541
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хорошо, это действительно очень просто, хотите верьте, хотите нет :)

У вас есть ответ JSON в какой-то текстовой форме:

{"status":"ok","ID_number":"YE513215"}

Что нам нужно сделать, так это превратить его в объект Javascript, чтобы мы могли извлекать из него атрибуты. Javascript имеет встроенный анализатор JSON:

var response_object = JSON.parse(xhr.responseText);

Затем мы можем получить идентификационный номер:

var id_number = response_object.ID_number;

@RandyCasburn действительно должен быть способ назначить это вам, раз уж вы меня победили;) но я обязательно попробую.

Dave 17.10.2018 06:55

@ Дэйв - похоже, то, что я ищу. Спасибо большое! Единственная проблема в том, что я новичок и не знаю, как правильно это кодировать. Я пробовал, но получаю ошибки.

Truststy 17.10.2018 07:01

@Truststy, куда бы вы это добавили, зависит от того, что вы хотите делать с информацией. Код, который вы включили выше, выглядит так, как будто он изменяет обычный запрос AJAX для отправки обновлений на какой-то уровень данных, но на самом деле он не выполняет сам запрос AJAX. Честно говоря, если вы новичок в этом, я бы очень не пытался обрабатывать запрос AJAX в прямом javascript, это огромная боль. Вместо этого вы можете использовать jQuery, который имеет множество вспомогательных методов.

Dave 17.10.2018 07:02

Я хочу добавить информацию, проанализированную на> 'eventLabel': {ID_Number}. Я посмотрю, что я могу сделать с этой информацией - большое спасибо!

Truststy 17.10.2018 07:05

Ох, хорошо! Так что это должно быть так же просто, как добавить к вашему объекту dataLayer 'eventLabel': JSON.parse(xhr.responseText)["ID_number"]

Dave 17.10.2018 07:07

@Truststy, не беспокойся, чувак! Сделайте мне одолжение и отметьте это как правильный ответ, мне нужны мои 15 баллов :) (также будущие пользователи смогут узнать, что это работает, не читая наши комментарии)

Dave 17.10.2018 07:13

Другие вопросы по теме