在您的回调中,data
将是反序列化的对象,而不是 JSON 字符串。因此,当您将其传递给 时html
,您基本上是在调用toString
它并传递结果。如果data
是一个数组,Array#join
默认情况下会执行。如果它是一个对象,toString
会给你[object Object]
。
您应该在元素中看到一些东西results
,但这里的重点是,如果您的目标是使用 中的数据data
,那么它已经为您解码。
如果您想查看脚本返回的实际 JSON 文本,您可以通过告诉 jQuery不要为您反序列化它来做到这一点,并确保当您将其转储到 HTML 时,任何 HTML 实体或特殊字符都是处理得当,像这样:
$(document).ready(function() {
$.post('matchEngine.php',
function(data){
$('#results').text(data); // <== `text` instead of `html`
// makes sure HTML characters
// like < are shown correctly
alert("data gotten!");
}, 'text'); // <== data type 'text' instead of
// 'json' tells jQuery NOT to decode
// it for you
});