【发布时间】:2021-11-16 07:28:22
【问题描述】:
我正在使用 PHP MVC 模型构建网站,我想在 Ajax 中使用 JSON 并从数据库中获取数据,但 response 总是返回我不想要的 HTML 标记和文本。
这是 Ajax 代码:
function readData() {
$.ajax({
url: 'http://example.com/?c=filename',
type: 'GET',
success: function (response) {
console.log(response);
var parse = JSON.parse(response);
}
});
}
readData();
这是我的 PHP 模型文件:
public function select(){
$select_query = $this->db->prepare("SELECT * FROM table_name");
$select_query->execute();
$row = $select_query->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($row, JSON_UNESCAPED_UNICODE);
}
这是我的 PHP 控制器文件:
$dashboard = new obj(); //class that contains `select` function in model file
$dashboard->select();
【问题讨论】:
-
尝试仅在浏览器中调用您的网址
http://example.com/?c=filename,或者您可以使用postman.com 来检查您是否真的收到了 JSON 字符串而不是 HTML。也许你在后端错过了一些header -
@patfreeze 实际上是因为在控制器中包含视图文件,它总是显示 HTML 标签,这就是为什么
response有 HTML,我试图只获取获取项目,而不是 HTML标签 -
because of including view files in the controller...好吧,那就不要那样做。有一个返回 JSON 而没有别的脚本。 -
@ADyon 这就是 MVC 模型的工作原理,如果我不在控制器中包含视图文件,它将无法工作
-
我不知道您使用的是哪个框架,但是(除非它是您自己制作的)所有主要的框架都有返回 JSON 而不是视图的方法。在正确的 MVC 中,您不 include 视图 into 控制器,您从控制器 return 视图 - 或者如果您想返回 JSON ,然后返回 JSON 而不是视图。
标签: javascript php jquery json ajax