Я нашел этот отличный скрипт, который выполняет работу по сбору 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>Вот один под @RandyCasburn: {"status": "ok", "ID_number": "YE513215"}
Это структура данных, которую я получаю при запуске скрипта.
Сначала проанализируйте responseText с помощью синтаксического анализа JSON: let data = JSON.parse(xhr.responseText); Затем получите идентификатор следующим образом: let id = data.ID_number
Большое спасибо! Но я не уверен, как и где это добавить в код. Есть ли шанс, что ты мог бы мне помочь? Ваше здоровье!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Хорошо, это действительно очень просто, хотите верьте, хотите нет :)
У вас есть ответ JSON в какой-то текстовой форме:
{"status":"ok","ID_number":"YE513215"}
Что нам нужно сделать, так это превратить его в объект Javascript, чтобы мы могли извлекать из него атрибуты. Javascript имеет встроенный анализатор JSON:
var response_object = JSON.parse(xhr.responseText);
Затем мы можем получить идентификационный номер:
var id_number = response_object.ID_number;
@RandyCasburn действительно должен быть способ назначить это вам, раз уж вы меня победили;) но я обязательно попробую.
@ Дэйв - похоже, то, что я ищу. Спасибо большое! Единственная проблема в том, что я новичок и не знаю, как правильно это кодировать. Я пробовал, но получаю ошибки.
@Truststy, куда бы вы это добавили, зависит от того, что вы хотите делать с информацией. Код, который вы включили выше, выглядит так, как будто он изменяет обычный запрос AJAX для отправки обновлений на какой-то уровень данных, но на самом деле он не выполняет сам запрос AJAX. Честно говоря, если вы новичок в этом, я бы очень не пытался обрабатывать запрос AJAX в прямом javascript, это огромная боль. Вместо этого вы можете использовать jQuery, который имеет множество вспомогательных методов.
Я хочу добавить информацию, проанализированную на> 'eventLabel': {ID_Number}. Я посмотрю, что я могу сделать с этой информацией - большое спасибо!
Ох, хорошо! Так что это должно быть так же просто, как добавить к вашему объекту dataLayer 'eventLabel': JSON.parse(xhr.responseText)["ID_number"]
@Truststy, не беспокойся, чувак! Сделайте мне одолжение и отметьте это как правильный ответ, мне нужны мои 15 баллов :) (также будущие пользователи смогут узнать, что это работает, не читая наши комментарии)
приведите пример того, что находится в
xhr.responseText, пожалуйста