我尝试在Wordpress中执行ajax然后返回json数据。
我的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');
}),
});
我的Json回来了:
string(50) "{"titulo":"aaatitle","descripcion":"bbbdescription"}"
我无法使用alert或console.log来打印titulo或descripcion ...
干杯!
答案 0 :(得分:1)
更改您的数据类型参数
$.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 :(得分:0)
您收到的回复既不是有效的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');
}),
});
答案 2 :(得分:-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');
}),
});