[英]json_encode prints data in html
我正在嘗試使用成功完成的Ajax( json_encode
)將數據庫表從PHP(使用面向對象的方法)傳遞給Javascript。 但是,問題在於$ data變量中的值會在我的body標簽中顯示,並帶有巨大的空格。
服務器端:
<?php
require_once "Database.php";
Class Product extends Database
{
public function getAllProducts(){
$sql = $this->connectDB()->query("SELECT * FROM product");
while($row = $sql->fetch()) {
$data[] = $row;
}
echo json_encode($data);
}
}
$p = new Product();
$p->getAllProducts();
?>
客戶端:
$(function() {
getProductData();
});
function getProductData(){
$.ajax({
url: "Product.php",
type: "get",
dataType: "json",
success: successAjax,
error: errorAjax,
complete: function(xhr, status) {
console.log(xhr);
console.log(status);
}
});
}
function successAjax($jsonarray){
console.log($jsonarray);
}
輸出(請注意,不會輸出body標簽):
<body>
"[{"id":"1","0":"1","name":"john","1":"john"},
{"id":"2","0":"2","name":"bob","1":"bob"}]"
</body>
如果我要做的就是將其從PHP傳遞到javascript,是否有任何方法可以防止echo json_encode
在HTML中打印數據?
嘗試在product.php上首先發送json http標頭
header('Content-Type: application/json');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.