Почему не удаеться получить доступ к свойству объекта ajax?
Не могу полуить свойства объекта
Пример php к которому обращаемся через ajax
<?php $json = []; $json['error'] = 'error'; $json['warning'] = 'warning'; echo json_encode($json); |
<?php $json = []; $json['error'] = 'error'; $json['warning'] = 'warning'; echo json_encode($json);
Пример js скрипта
<script> $(".button__client").click(function () { var name = $(this).attr('data-name') var id = $(this).attr(`data-id`) $.ajax({ type: 'post', url: name + '/' + id, beforeSend: function () { $('.loader-div').show() }, success: function (data) { console.log(data) console.log(data.error) } }); }) </script> |
<script> $(".button__client").click(function () { var name = $(this).attr('data-name') var id = $(this).attr(`data-id`) $.ajax({ type: 'post', url: name + '/' + id, beforeSend: function () { $('.loader-div').show() }, success: function (data) { console.log(data) console.log(data.error) } }); }) </script>
Распечатка по data
console.log(data) {"error":"error","warning":"warning"} |
console.log(data) {"error":"error","warning":"warning"}
А вот почему то data.error
console.log(data.error) undefined |
console.log(data.error) undefined
Дополнительно:
А data точно json а не строка?
потому что вы строку получили.
Вам нужно либо самостоятельно распарсить ее в объект JSON.parse()
Либо предоставить это jquery
$.ajax({ type: 'post', dataType: 'json', // Тип возвращаемых данных url: name + '/' + id, |
$.ajax({ type: 'post', dataType: 'json', // Тип возвращаемых данных url: name + '/' + id,
В этом случае в success jquery вам передаст уже готовый объект
- Точно, спасибо вам огромное, не заметил. Спасибо
Ответы:
dataType: 'json'
$(".button__client").click(function () { var name = $(this).attr('data-name') var id = $(this).attr(`data-id`) $.ajax({ type: 'post', dataType: 'json', url: name + '/' + id, beforeSend: function () { $('.loader-div').show() }, success: function (data) { console.log(data) console.log(data.error) } }); }) |
$(".button__client").click(function () { var name = $(this).attr('data-name') var id = $(this).attr(`data-id`) $.ajax({ type: 'post', dataType: 'json', url: name + '/' + id, beforeSend: function () { $('.loader-div').show() }, success: function (data) { console.log(data) console.log(data.error) } }); })
- Спасибо за помощь, не заметил
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Чтобы получить доступ к свойству объекта ajax, необходимо убедиться, что объект ajax был создан и инициализирован правильно. Возможно, проблема заключается в том, что объект ajax не был правильно инициализирован, либо используется неправильный способ доступа к свойству.
Вот несколько шагов, которые могут помочь в решении проблемы:
1. Убедитесь, что объект ajax был создан с использованием правильного синтаксиса. Например, если вы используете XMLHttpRequest для создания объекта ajax в JavaScript, убедитесь, что вы правильно создали новый экземпляр XMLHttpRequest:
var xhr = new XMLHttpRequest();
2. Проверьте, что свойство, к которому вы пытаетесь получить доступ, действительно существует в объекте ajax. Убедитесь, что вы правильно указали имя свойства и что оно было правильно инициализировано.
3. Проверьте, что объект ajax был успешно загружен и что свойство, к которому вы пытаетесь получить доступ, доступно в текущем состоянии объекта. Например, если вы пытаетесь получить доступ к свойству responseText объекта XMLHttpRequest, убедитесь, что запрос был успешно выполнен и данные были получены.
4. Проверьте, что вы используете правильный синтаксис для доступа к свойству объекта ajax. Например, если вы используете JavaScript, убедитесь, что вы обращаетесь к свойству с использованием точечной нотации:
var data = xhr.responseText;
Если после выполнения этих шагов проблема с доступом к свойству объекта ajax все еще не решена, возможно, проблема заключается в другом месте вашего кода. Попробуйте внимательно просмотреть код и найти другие возможные ошибки, которые могли привести к этой проблеме. Возможно, вам потребуется более подробная информация о вашем коде, чтобы мы могли помочь вам дальше.