据我了解,在对服务器端 (PHP) 进行 Ajax 调用时,可以指定调用允许的数据类型。我经常看到这是一个 JSON 对象。
此 Ajax 调用是否可以指定任何其他对象类型?
这是有道理的,因为 JSON 是用于 Javascript 的,所以它希望它的数据采用相应的格式,但为什么不直接使用获取的查询结果对象,就像它在 PHP 视图上所做的那样?
据我了解,在对服务器端 (PHP) 进行 Ajax 调用时,可以指定调用允许的数据类型。我经常看到这是一个 JSON 对象。
此 Ajax 调用是否可以指定任何其他对象类型?
这是有道理的,因为 JSON 是用于 Javascript 的,所以它希望它的数据采用相应的格式,但为什么不直接使用获取的查询结果对象,就像它在 PHP 视图上所做的那样?
JavaScript 和 PHP 通过 HTTP 使用原始数据相互通信(您可以将它们视为纯文本字符串)。语言解释器在接收到这些原始数据时会处理任何数据转换。因此,即使您似乎在来回传递 JavaScript 对象,实际上您只是在传递 JSON 格式的字符串,并且您的 JavaScript 库可能会自动解析它们。
PHP 只能通过发射这些原始数据从 HTTP 请求返回数据,这通常会导致字符串转换。所以说你有一个查询结果对象——你会这样做:
echo $result_object
这可以是任何东西;也许它会回显“Object (#1Result)”——或者无论对象的 toString 方法是什么。这在 JavaScript 端不是很有用。
当您说 PHP 视图时,我不确定您的意思,但我想您有某种模板引擎。这是用 PHP 编写的,可以对 php 对象本身进行操作,以获取它需要以某种格式(可能是 HTML)发出的数据。
如果您的问题是为什么使用 JSON 而不是 HTML 更好——那么无论您的选择如何,都有很多优点和缺点。JSON 通常是一个不错的选择,因为它具有紧凑的大小和简单性。如果您想实际显示原始 HTML,只需发送 HTML 而不是从客户端上的 JSON 重新创建它可能更容易。
由于AJAX
调用是由 javascript 函数触发的(不是吗?)并且结果被返回到 javascript 回调函数,因此您正在使用 javascript(在客户端)。
您可以返回 JSON、纯文本、XML……但是您必须关心您使用的是什么格式,此时 JSON 是恕我直言的最佳选择。