Ответ 1
alert()
печатает строковое представление аргументов - следовательно, если вы передадите объект, вы получите [object Object]
.
Чтобы проверить данные, лучше используйте console.log(data)
.
У меня есть очень простой аякс-вызов, чтобы предупредить данные, которые были отправлены с сервера
$.ajax({
type: "POST",
url: "/someform/act", //edit utl to url
data: { changed: JSON.stringify(plainData) }, //edit to include
success: function(data) {
alert(data); //data not $data
},
error: function() {
//error condition code
}
});
В соответствии с docs на веб-сайте jquery относительно поля данных в обратном вызове успеха говорится, что данные возвращены данными с сервера. Однако по какой-то странной причине, когда я предупреждаю $data
, я получаю [object Object]
Я ожидал увидеть что-то вроде этого, так как сервер отправляет обратно
<status>0</status>
EDIT:
данные также передаются как POST
alert()
печатает строковое представление аргументов - следовательно, если вы передадите объект, вы получите [object Object]
.
Чтобы проверить данные, лучше используйте console.log(data)
.
Вам нужно использовать JSON.stringify(data)
в alert
, чтобы получить что-нибудь читаемое.
Кроме того, $data
- это совершенно другое имя переменной, чем data
.
Если сервер отправляет JSON, вам нужно поставить dataType: 'json'
на ваш вызов ajax. Имейте в виду, что в вашем аякс-вызове есть некоторая ошибка.
$.ajax({
type: "POST",
url: "/someform/act", // NOT 'UTL',
data: {
key: value,
key2: value2
},
// or data: plaindata, // If 'plaindata' is an object.
dataType: 'json',
success: function(data) {
console.log(data); // As moonwave99 said
},
error: function() {
//error condition code
}
});
ИЗМЕНИТЬ
При отправке данных вы должны отправить объект. jQuery будет обрабатывать массив, чтобы перехватить его на сервере. Поэтому, если простые данные являются объектами, это должно быть как
data: plainData,