Я пытаюсь сделать ajax, а затем вернуть данные json в Wordpress.
Мой Ajax:
$.ajax({
type: "POST",
dataType : 'html',
url: "/wp-content/themes/myproject/ajax/otros_alojamientos.php",
data: {
idPost: '<?php echo $ID; ?>'
},
success: (function(data) {
alert(data); // this is my json
var a = $.parseJSON(data);
alert(a.titulo); // there is not nothing here. Undefined.
}),
error: (function(data) {
console.log('Error alojamientos');
}),
});
Мой Джонсон:
string(50) "{"titulo":"aaatitle","descripcion":"bbbdescription"}"
Я не могу распечатать титуло или дескрипцию с помощью alert или console.log...
Ура!
измените свой параметр типа данных
$.ajax({
type: "POST",
dataType : 'json',
url: "/wp-content/themes/myproject/ajax/otros_alojamientos.php",
data: {
idPost: '<?php echo $ID; ?>'
},
success: (function(data) {
alert(data.titulo); // data is parsed as Json by jQuery
}),
error: (function(data) {
console.log('Error alojamientos');
}),
});
вы также должны проверить параметры функции обратного вызова ошибки (он не ожидает данных как 1-й параметр)
$.ajax({
type: "POST",
url: "/wp-content/themes/myproject/ajax/otros_alojamientos.php",
data: {
idPost: '<?php echo $ID; ?>'
},
success: (function(data) {
alert(data);
var a = JSON.parse(data);
alert(a.titulo);
}),
error: (function(data) {
console.log('Error alojamientos');
}),
});
Ну, ответ, который вы получаете, не является допустимым json
или действительным html
. Таким образом, либо вы удаляете dataType, а затем вы должны его проанализировать или просто добавить dataType:"json"
но в вашем случае это не действительный json
.
Поэтому я хотел бы сказать вам, что вы должны использовать dataType:"text"
а затем можете проанализировать его:
$.ajax({
type: "POST",
dataType : 'text',
url: "/wp-content/themes/myproject/ajax/otros_alojamientos.php",
data: {
idPost: '<?php echo $ID; ?>'
},
success: (function(data) {
var json = data.split(' ')[1]; // gets you the json string
var validJson = $.parseJSON(json); // parses as valid json
alert(validJson.titulo);
}),
error: (function(data) {
console.log('Error alojamientos');
}),
});