Почему не удаеться получить доступ к свойству объекта ajax?

Ссылка скопирована
1 ответ

Не могу полуить свойства объекта
Пример 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) } }); })

  • Спасибо за помощь, не заметил
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Сергей Миронов Ответ

Чтобы получить доступ к свойству объекта ajax, необходимо убедиться, что объект ajax был создан и инициализирован правильно. Возможно, проблема заключается в том, что объект ajax не был правильно инициализирован, либо используется неправильный способ доступа к свойству.

Вот несколько шагов, которые могут помочь в решении проблемы:

1. Убедитесь, что объект ajax был создан с использованием правильного синтаксиса. Например, если вы используете XMLHttpRequest для создания объекта ajax в JavaScript, убедитесь, что вы правильно создали новый экземпляр XMLHttpRequest:

var xhr = new XMLHttpRequest();

var xhr = new XMLHttpRequest();

2. Проверьте, что свойство, к которому вы пытаетесь получить доступ, действительно существует в объекте ajax. Убедитесь, что вы правильно указали имя свойства и что оно было правильно инициализировано.

3. Проверьте, что объект ajax был успешно загружен и что свойство, к которому вы пытаетесь получить доступ, доступно в текущем состоянии объекта. Например, если вы пытаетесь получить доступ к свойству responseText объекта XMLHttpRequest, убедитесь, что запрос был успешно выполнен и данные были получены.

4. Проверьте, что вы используете правильный синтаксис для доступа к свойству объекта ajax. Например, если вы используете JavaScript, убедитесь, что вы обращаетесь к свойству с использованием точечной нотации:

var data = xhr.responseText;

var data = xhr.responseText;

Если после выполнения этих шагов проблема с доступом к свойству объекта ajax все еще не решена, возможно, проблема заключается в другом месте вашего кода. Попробуйте внимательно просмотреть код и найти другие возможные ошибки, которые могли привести к этой проблеме. Возможно, вам потребуется более подробная информация о вашем коде, чтобы мы могли помочь вам дальше.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно