Ваш код работает нормально. Просто кажется, что вы ожидаете, что alert()
сделает что-то большее, чем это делает. Он не сериализует объекты и не отображает какое-либо заданное свойство, которое может потребоваться от этих объектов. Все, что не является примитивным значением, просто отображается как:
[object Object]
Самый простой подход для отладки - не использовать alert()
. Вместо этого используйте console.log()
. Это имеет несколько преимуществ:
- Он неблокируемый, поэтому код может продолжать выполняться с нормальной синхронизацией. Это уменьшает вероятность ошибок времени, вызванных тем, что код ведет себя очень по-разному в сценариях отладки и выпуска.
- Он сериализует сложные типы, так что вы можете полностью изучить ваши объекты.
- Это не закрываемый диалог, а текущий журнал.
Откройте инструменты отладки вашего браузера и взгляните на консоль. Затем в вашем коде (в вашей функции success
, где вы в данный момент используете alert()
) просто сделайте что-то вроде:
console.log("Success = ", data);
Наблюдайте, что записано на консоли. Для отладки это даст вам точное представление о том, что такое сложный объект / массив data
, что это за элементы и т. Д. Оттуда вы можете наблюдать, как получить доступ к любому данному значению в этом объекте / массиве.