如何从 JSON 响应中删除不需要的标签
Posted
技术标签:
【中文标题】如何从 JSON 响应中删除不需要的标签【英文标题】:How to remove unwanted tags from JSON response 【发布时间】: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 而不是视图。
【参考方案1】:
在你的 file.js 中添加 2 个参数:dataType 和 contentType。
$.ajax(
url: 'http://example.com/?c=filename',
type: 'GET',
dataType: 'JSON',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
success: function (response)
console.log(response);
var parse = JSON.parse(response);
);
数据类型:'JSON'
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
在你的 PHP 文件的顶部添加这一行:
header('Content-Type: application/json; charset=UTF-8');
这一行应该避免像 html 文件一样捕获它。使用 POSTMAN 在没有 javascript 的情况下测试您的请求。 Postman 可以发送一个简单的 GET 到
https://YourServerLocalOrVPStester/?c=filename
也许,可以使用 chrome、firefox、operaGx 或任何你用作浏览器的东西来制作一个简单的调用 url,而无需 javascript 或 Postman
Postman 将自动检测标题并像 JSON 一样自动显示它。
如果可行,那么从 ajax 尝试一下,应该也可以。
【讨论】:
以上是关于如何从 JSON 响应中删除不需要的标签的主要内容,如果未能解决你的问题,请参考以下文章
如何从 CURL 响应 PHP API 的 JSON 字符串中删除引号、不需要的数据
如何从 Laravel 中的响应 JSON 中删除 HTML 标签 [关闭]